У меня есть файл json в папке Content в моем проекте asp.net:
<projectName>
\Content
NBCCJr.json
... и код для доступа к нему:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
... но при вызове кода ничего не происходит; консоль браузера сообщает: «Не удалось загрузить ресурс: сервер ответил статусом 404 (не найден)»
Почему его не нашли? Разве "тильда ударить имя файла" не является правильным путем к файлу?
ОБНОВИТЬ
Еще попробовал с "ударами" задом наперед:
$.getJSON('~\Content\NBCCJr.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
... чтобы:
http://localhost:9702/Content/NBCCJr.json
Я получил информативное сообщение WSOD от Винта Серфа, Тима Бернерса-Ли и / или Эла Гора:
Ошибка HTTP 404.3 - не найдена Запрашиваемая страница не может быть обслужена из-за конфигурации расширения. Если страница представляет собой сценарий, добавьте обработчик. Если файл должен быть загружен, добавьте карту MIME.
ОБНОВЛЕНИЕ 4
Благодаря JAM теперь он работает.
Мне пришлось добавить это в Web.Config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
источник
Ответы:
Вы пытались удалить
~
?Как в:
$.getJSON('/Content/dumboJr.json', function (data) { $.each(data, function(i, dataPoint) { // Bla }); }); )
Чтобы разрешить IIS обслуживать файлы JSON, попробуйте добавить это в свой web.config:
<staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>
источник
Решение: вам нужно добавить тип расширения файла json в типы MIME.
Способ 1
Перейдите в IIS, выберите свое приложение и найдите типы MIME.
Нажмите "Добавить" на правой панели.
Расширение имени файла = .json.
Тип MIME = приложение / json
После добавления .json типа файла в MIME типов , Restart IIS и попытаться файл JSON доступа
Способ 2
Перейдите в web.config этого приложения и добавьте в него эти строки
<system.webServer> <staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent> </system.webServer>
источник
Попробуйте поместить файл * .json в webRoot, а не в подпапку. А затем ссылайтесь на это как:
$.getJSON('NBCCJr.json', function (data) {
Это, конечно, требует предыдущего включения и создания экземпляра системного объекта jQuery из: jquery.min.js или структуры JSON из: json2-1.0.min.js
источник
Я изменил .json на .txt, и запрос работает нормально. Я не уверен, к каким последствиям может привести .txt.
источник
Если вы используете
ASP.NET Core
, просто вставьте файл,wwwroot
но если вы используетеASP.NET
фреймворк, это позволяет расширение JSON из web.config следующим образом:<staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>
а также
<location path="Content"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
источник