Расширение файла JSON - PullRequest
       19

Расширение файла JSON

8 голосов
/ 14 июля 2011

Я сохранял все свои файлы json с расширением .txt, и они работали с вызовами jquery ajax.

Когда я меняю расширение на .json и в своем вызове jquery ajax - jQuery.ajax () - я указываю

  • dataType: "json",
  • contentType: "application / json; charset = utf-8",

файлы больше не работают. Почему так?

Разве все файлы json не должны иметь расширение .json? Я использую 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){}  
});

Может кто-нибудь сказать, почему не работает расширение .json? Это работает, если я изменю его на .txt

Ответы [ 3 ]

6 голосов
/ 13 января 2014

Правильное расширение - .json, а тип пантомимы - application/json (ссылка: на этой странице Википедии ).Однако, в общем, оно должно работать с любым расширением, если ваша структура данных верна и ваш веб-сервер делает то, что должен.

4 голосов
/ 23 марта 2014

IIS поставляется в комплекте с набором обработчиков MIME-типа. Это означает, что при вводе URL-адреса, который заканчивается, например, .png, IIS знает, что это изображение, и отправляет соответствующий ответ, чтобы сообщить клиенту (браузеру), что это изображение (поэтому его можно представить как таковое). ).

.json по умолчанию не имеет обработчика MIME-типа. Вам нужно настроить один:

  • Загрузить IIS Manager
  • Просмотр узлов дерева до вашего веб-приложения или веб-сайта
  • Двойной щелчок на функции MIME Types (нижняя панель)
  • Нажмите «Добавить» (RHS в разделе «Добавить» или щелкните правой кнопкой мыши и выберите «Добавить»)
  • Поместите .txt под полем расширения и application/json в качестве типа MIME

Готово! Попробуйте запросить файл JSON в браузере; если он рендерится правильно (как текст), круто. Если нет, вам, возможно, придется указать IIS вместо этого text/plain.

0 голосов
/ 27 августа 2012

dataType: «json» не для указания типа файла, а для указания типа данных, которые сервер будет возвращать.Со стороны сервера, например, если вы используете php, вы должны вернуть строку json, используя функцию "json_encode", чтобы она могла быть принята dataType: "json".

...