jquery - 为什么找不到我的 json 文件?

我的 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(未找到)”)

更新 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

我收到了来自 Vint Cerf、Tim Berners-Lee 和/或 Al Gore 的内容丰富的 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>

https://stackoverflow.com/questions/17626776/

相关文章:

json - react-native 如何从本地JSON文件中获取数据?

javascript - 以 JSON 格式发布数据

asp.net-mvc - 从 Asp.net WEBAPI 显式返回 JSON 字符串?

c# - XmlDocument - 从字符串加载?

json - 如何使用 curl 将 json 对象与数组一起放置

c# - DataContractJsonSerializer 和 JavaScriptSerial

json - 部分 JSON 在 Go 中解码为 map

json - 用 R 解析 JSON

javascript - ES6 模块实现,如何加载 json 文件

json - 将 JSON 传递给 HTTP POST 请求