我的 asp.net 项目的 Content 文件夹中有一个 json 文件:
<projectName>
\Content
NBCCJr.json
...以及访问它的代码:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
...但是调用代码时没有任何反应;浏览器控制台显示“加载资源失败:服务器响应状态为 404(未找到)”
为什么找不到? “波浪号重击文件名”不是文件的正确路径吗?
我也尝试过用“重击”倒过来:
$.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>
最佳答案
你试过删除 ~
吗?
如:
$.getJSON('/Content/dumboJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
要允许 IIS 提供 JSON 文件,请尝试将其添加到您的 web.config:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
https://stackoverflow.com/questions/17626776/