我的asp.net项目中的Content文件夹中有一个json文件:
<projectName>
\Content
NBCCJr.json
...以及访问它的代码:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
...但是在调用代码时没有任何反应;浏览器控制台说:“无法加载资源:服务器响应状态为404(未找到)”
为什么找不到?是不是“tilde whack filename”是文件的正确路径?
我也向后试了“whacks”:
$.getJSON('~\Content\NBCCJr.json', function (data) {
...并得到相同的结果(“无法加载资源:服务器响应状态为404(未找到)”)
然后我试着这样做了一个前面的打击:
$.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".*
所以它还没有找到并且还没有加载?
当我尝试通过更改:
导航到浏览器中的文件时http://localhost:9702/Default.cshtml
...为:
http://localhost:9702/Content/NBCCJr.json
我从Vint Cerf,Tim Berners-Lee和/或Al Gore那里得到了一条信息丰富的WSOD消息说:
HTTP错误404.3 - 未找到 由于扩展配置,无法提供您请求的页面。如果页面是脚本,请添加处理程序。如果要下载文件,请添加MIME地图。
感谢JAM,它现在正在运作。
我不得不将其添加到Web.Config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
答案 0 :(得分:95)
您是否尝试删除~
?
如:
$.getJSON('/Content/dumboJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
要允许IIS提供JSON文件,请尝试将其添加到web.config:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
答案 1 :(得分:22)
转到IIS,选择您的应用程序并查找MIME类型
点击从右侧面板添加
文件名扩展名= .json
MIME类型= application / json
在 MIME类型中添加 .json 文件类型后,重新启动IIS 并尝试访问json文件
转到该应用程序的web.config并在其中添加此行
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
答案 2 :(得分:2)
尝试将* .json文件放在webRoot中,而不是放在子文件夹中。然后引用它:
$.getJSON('NBCCJr.json', function (data) {
这当然要求以前包含和实例化jQuery系统对象: jquery.min.js 或来自以下的JSON结构: json2-1.0.min.js
答案 3 :(得分:1)
我将.json更改为.txt并且请求正常工作。我不确定.txt会导致后果。
答案 4 :(得分:1)
如果使用ASP.NET Core
,只需将文件放在wwwroot
中,但是如果使用ASP.NET
框架,则可以通过以下方式从web.config进行JSON扩展:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
和
<location path="Content">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>