Почему мой файл json не найден?


у меня есть файл json в папке содержимого внутри моего asp.net проект:

<projectName>
    Content
        NBCCJr.json

...и код для доступа к нему:

$.getJSON('~/Content/NBCCJr.json', function (data) {
    $.each(data, function(i, dataPoint) {
        // Bla
      });
  });
)

...но ничего не происходит при вызове кода; консоль браузера говорит: "не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)"

почему он не найден? Разве "tilde whack filename" не правильный маршрут к файлу?

обновление

Я также попробовал его с " ударами" назад:

$.getJSON('~ContentNBCCJr.json', function (data) {

...и получил тот же результат ("не удалось загрузить ресурс: ответ сервера со статусом 404 (не найдено)")

обновление 2

затем я попробовал его без добавленного удара таким образом:

$.getJSON('Content/NBCCJr.json', function (data) {

...и я получаю это неоднозначное сообщение в консоли:

*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*

так он не был найден и все же загружен?

обновление 3

когда я попытался перейти к файлу в браузер, изменив:

http://localhost:9702/Default.cshtml

... to:

http://localhost:9702/Content/NBCCJr.json

я получил информативное сообщение WSOD От Винта Серфа, Тима Бернерса-Ли и / или Эла Гора, говорящего:

ошибка HTTP 404.3 - не найдено Запрашиваемая страница не может обслуживаться из-за конфигурации расширения. Если страница является сценарием, добавьте обработчик. Если файл должен быть загружен, добавьте карту MIME.

обновление 4

благодаря JAM, он теперь работает.

Я должен был добавить это в Интернете.Config:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
4 80

4 ответа:

вы пробовали удалить ~ ?

в:

$.getJSON('/Content/dumboJr.json', function (data) {
    $.each(data, function(i, dataPoint) {
        // Bla
      });
  });
)

чтобы разрешить IIS обслуживать файлы JSON, попробуйте добавить это в свой веб-сайт.config:

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

решение вам нужно добавить тип расширения файла json в MIME Types

Способ 1

перейдите в IIS, выберите приложение и найдите типы MIME

enter image description here

Нажмите кнопку Добавить с правой панели

Расширение Имени Файла = .json

mime Type = application / json

enter image description here

после добавления .json тип файла в типы MIME,перезапустить IIS и попробуйте получить доступ к файлу json


Способ 2

перейти в интернет.config этого приложения и добавьте в него эти строки

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

попробуйте положить *.JSON-файл в webRoot, а не в подпапке. А затем ссылаться на него, как:

$.getJSON('NBCCJr.json', function (data) {

Это, конечно, требует предыдущего включения и создания экземпляра системного объекта jQuery из: jquery.минута.js или структура JSON от:json2-1.0.минута.js

Я Изменилась .json to .TXT и запрос работает нормально. Я не уверен в результате .txt может вызвать.