2013-04-11 23 views
50

Otrzymałem komunikat "ERROR 404.3 Not Found" dla pliku JSON, który wywołuję za pomocą wywołania AJAX w "Internet Information Services 7.5", nawet po aktywowaniu wszystkich "funkcji programowania aplikacji" . Poza plikiem JSON wszystkie inne pliki są ładowane.Błąd 404.3 Nie znaleziono dla pliku JSON

Używam strony HTML na serwerze IIS na moim komputerze lokalnym.

Jeśli otworzę plik bezpośrednio, to nie ma problemu. Kiedy hostuję pliki na serwerze online, wszystko działa dobrze.

Każda szybka pomoc będzie bardzo doceniana.

Odpowiedz

24

Czy plik, który próbujesz odebrać w tej samej domenie? Czy możesz pobrać json z innego serwera? Jeśli jest hostowany w innej domenie, będziesz musiał użyć JSONP z powodu tej samej zasady pochodzenia.

+0

to ta sama domena, poniżej jest struktura folderów: Folder główny index.html - dane/data.json - js/js.js –

+60

Ok , problem polega na tym, że IIS nie ma domyślnie typu pliku JSON (MIME), więc musisz go skonfigurować: Aby ustawić to dla całego serwera: 1. Otwórz właściwości swojego serwera w Menedżerze usług IIS i przejdź dla typów MIME. 2. Użyj "Nowy" i wpisz "JSON" jako rozszerzenie i "application/json" dla MIME. – elasticman

+1

Dzięki @ user1794026 to działało, to było szybkie i łatwe. –

26

Jak powiedział przez @elasticman, konieczne jest, aby otworzyć Menedżera IIS -> Typy Mime -> Dodaj nowy typ mime z

Extension: .json Type MIME: application/json

ale dla mnie to wciąż nie wystarczało. Mam aplikację ASP.NET MVC 4 i musiałem zmodyfikować mój plik root Web.config.

Insert

<staticContent> 
    <mimeMap fileExtension=".json" mimeType="application/json" /> 
</staticContent> 

gdzieś wewnątrz

<system.webServer> 
    ... 
</system.webServer> 
79

Jak sugeruje @ancajic i umieścić poniższy kod po connectionString tag w moim pliku web.config i to działało.

<system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/json" /> 
    </staticContent> 
    </system.webServer> 
+0

Dzięki nie miałem pojęcia, gdzie umieścić i wiedząc, aby umieścić go w , co sprawiło, że działa! Dzięki! – richfinelli

+0

Nie ma za co! :) – Himanshu

+0

gdzie znajdę plik web.config? – userJT

6

Zastosowałem następujące ustawienia w IIS miał rację.


1.Open IIS Menedżer

2.Display właściwości serwera IIS

Rodzaje 3.Click MIME, a następnie dodać rozszerzenie JSON: imię

rozszerzenie pliku: .json

Typ MIME: zgłoszenie/json

4. Wróć do właściwości dla IIS Server

5.Kliknij Handler Mappings

dodać mapę skryptu

Zapytanie ścieżka: * .json

wykonywalny: C: \ WINDOWS \ system32 \ inetsrv \ asp .dll Nazwa: JSON

7

Jeśli korzystasz z usług IIS Express w Visual Studio, Menedżer usług IIS nie będzie działał w IIS Express. Zamiast tego musisz otworzyć ten plik konfiguracyjny z% userprofile% \ documents \ IISExpress \ config \ applicationhost.config i wstaw

<staticContent> 
    <mimeMap fileExtension=".json" mimeType="application/json" /> 
</staticContent> 

wraz ze wszystkimi innymi wstępnie zdefiniowanymi rodzajami mime.

0

Nie mam tego samego problemu, ale dla mnie (Windows Server 2003 IIS 6) aplikacja typu MIME/json nie działa. Używam text/plain i pracować idealny (nie trzeba ponownie uruchomić serwer)

0

Aby rozwiązać ten problem z serwisu App Azure:

Korzystanie z FTP lub deski rozdzielczej Kudu dodać ten plik o jeden poziom wyżej wwwroot--

/site/applicationHost.xdt:

<?xml version="1.0" encoding="utf-8"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/json" xdt:Transform="InsertBefore(/configuration/system.webServer/staticContent/*[1])" /> 
    </staticContent> 
    </system.webServer> 
</configuration> 

Następnie w ustawieniach aplikacji na portalu Azure, dodać mapowanie Handler:

.json  C:\WINDOWS\system32\inetsrv\asp.dll 
0
  1. idź do IIS

  2. Wybierz witryny

  3. kliknij dwukrotnie Typ Mime Ikona pod IIS

  4. Kliknij Dodaj link w prawej

  5. File Name Extension =. json Mime Type = application/json

  6. Kliknij OK.

Mam nadzieję, że twój problem rozwiązać