【问题标题】:Reading Json file from angularJs causing error从 angularJs 读取 Json 文件导致错误
【发布时间】:2015-09-21 11:22:32
【问题描述】:

我正在尝试从我的 Visual Studio 2013 环境中读取一个 json 文件。它抛出一些错误,如下所述

The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

但是它在 plnkr http://plnkr.co/edit/std1ngB40YIJBmC94Zdm?p=preview 上工作正常

有人可以告诉我如何解决吗?

错误截图

文件夹结构

【问题讨论】:

  • 那么在站点的根目录中是否有该名称的文件?我们不能仅从图像中调试路径问题。此外,错误消息似乎您可能需要为 json 文件配置 IIS
  • 是的,我正在从该路径读取文件
  • 伙计们,我不明白投反对票????
  • 如果你得到一个 404 怎么办?评论没有意义,对于故障排除提供的信息也不是很丰富
  • 您是否按照提示为文件扩展名添加了矿图?

标签: json angularjs iis-7


【解决方案1】:

您是否正确设置了 MIME 地图?我只看到处理程序映射的屏幕截图。

  1. 打开 IIS 管理器
  2. 显示 IIS 服务器的属性
  3. 单击 MIME 类型,然后添加 JSON 扩展:
    • 文件扩展名:.json MIME
    • 类型:应用程序/json
  4. 返回 IIS 服务器的属性
  5. 点击处理程序映射
  6. 添加脚本映射
    • 请求路径:*.json
    • 可执行文件:C:\WINDOWS\system32\inetsrv\asp.dll
    • 名称:JSON

如果这仍然无法工作,请删除已完成的脚本映射并坚持使用 mime 映射,我不知道您为什么首先添加脚本映射。

【讨论】:

  • 请仔细阅读错误,可以看到If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
  • @Gaurvav 但页面不是脚本?您正在执行$http.get,这意味着客户端正在下载文件而不是服务器正在执行文件。因此,您需要设置一个 mime 类型,以便服务器正确处理 download 请求。听从我的建议。 处理程序映射处理服务器可执行代码mime映射处理通常流式传输到客户端的非可执行内容。我相信是您需要正确阅读错误,这是一个下载。不是脚本。
  • 我明白了你的意思,并尝试了与你说的相同的步骤,但没有成功。你知道我错过了什么吗?
【解决方案2】:

我对这个问题做了很多研究,终于解决了:) :)

我也尝试了@James Trotter 给出的答案,但没有成功。

我不知道为什么 IIS 中的 MIME 不起作用,但是当我在 web.config 中添加它时它起作用了

解决方案:

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

更多信息

Allow loading of JSON files in Visual Studio Express 2013 for Web

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多