2011-07-14 25 views
7

Zapisałem wszystkie moje pliki json z rozszerzeniem .txt i działały z wywołania ajax jquery.Rozszerzenie pliku JSON

Kiedy zmienić rozszerzenie do .json iw moim jquery ajax Call - jQuery.ajax() - określić

  • Typ danych: "json",
  • contentType: „aplikacji/json; charset = utf-8 ",

pliki już nie działają. Dlaczego tak?

Czy nie wszystkie pliki json mają rozszerzenie .json? Używam serwera IIS.

JSON

{ "rows": [ 
    {"row":[ 
    {"cells": [ 
     {"data": "Edit"}, 
     {"data": "030194"} 
    ]} 
    ]}, 
    {"row":[ 
    {"cells": [ 
     {"data": "Add"}, 
     {"data": "030194"} 
    ]} 
    ]} 
]} 

jQuery

jQuery.ajax ({ 
    type: "GET", 
    url: "localhost/ABC.json", 
    dataType: "json", 
    contentType: "application/json; 
    charset=utf-8", 
    cache: "false", 
    success: function(response){} 
}); 

Czy ktoś mógłby mi powiedzieć, dlaczego rozszerzenie .json nie działa? Działa, jeśli zmienię go na .txt

+0

Czy możesz napisać swój kod? –

+3

Istnieje spora szansa, że ​​przyczyną problemu jest twój serwer internetowy. Istnieje jeszcze większa szansa, że ​​całkowicie niewłaściwie używasz JSON, próbując (prawdopodobnie?) magazyn danych. – riwalk

+3

@ Stargazer712: Moje pieniądze są na serwerze sieciowym. Nierozpoznany typ zawartości/mime, więc tekst (tekst/zwykły) nie ma już prawidłowego "Content-Type" –

Odpowiedz

0

dataType: "json" nie określa rodzaju pliku, który ma określać rodzaj danych zwracanych przez serwer. Od strony serwera, na przykład, jeśli używasz php, musisz zwrócić ciąg znaków json za pomocą funkcji "json_encode", aby mógł zostać zaakceptowany przez dataType: "json".

4

Prawidłowe rozszerzenie to .json, a typ MIME to application/json (numer referencyjny: this Wikipedia page). Zasadniczo jednak powinien działać z dowolnym rozszerzeniem, o ile struktura danych jest ważna, a serwer WWW robi to, co powinien.

4

Usługi IIS są dostarczane w pakiecie z wieloma procedurami obsługi typów MIME. Oznacza to, że po wprowadzeniu adresu URL, który kończy się na przykład .png, IIS wie, że jest to obraz i wywołuje odpowiednią odpowiedź, aby poinformować klienta (przeglądarkę), że jest obrazem (aby mógł być renderowany jako taki).

.json nie ma domyślnie obsługi typu MIME. Trzeba ustawić na prowadzenie:

  • IIS Załaduj Menedżer
  • Przeglądaj węzły drzewa do aplikacji internetowej lub stronie
  • dwukrotnie kliknąć na MIME typy obiektów (dolnym okienku)
  • kliknij przycisk Dodaj (RHS pod "Dodaj", lub kliknij prawym przyciskiem myszy i wybrać Add)
  • Put .txt pod polem rozbudowa i application/json jako typ MIME

Skończyłeś! Spróbuj zażądać pliku JSON w przeglądarce; jeśli renderuje się poprawnie (jako tekst), jest niesamowity. Jeśli nie, być może będziesz musiał powiedzieć usługom IIS, aby renderowały je jako text/plain.