当运行WebMatrix的站点访问时,是否有任何受保护的文件类型会返回404?

Voi*_*ing 3 javascript ajax jquery json webmatrix

例如,在外部JavaScript文件中,我在一个简单的$(document).ready函数中有这个:

$.getJSON("/aTest.json", function (jsonObj) {
    $("#testJSONBtn").click(function () {
        var val = "";
        for (var i = 0; i <= jsonObj.events.length; ++i) {
            val += jsonObj.events[i].title + ", " + jsonObj.events[i].date + ", " + jsonObj.events[i].explanation + "<br/>";
        }
        $("#JSONOutput").append(val);
    });
});
Run Code Online (Sandbox Code Playgroud)

JavaScript控制台一直告诉我服务器返回404(未找到),但该文件肯定是该名称,并且正好在该路径上.所有其他资源都可以通过网站访问.我试过移动文件并重命名它,以及其他一些东西,所以我觉得这可能与WebMatrix有关,它运行的IIS版本(它是8?),还是文件扩展我正在使用(.json).外部json文件不应该存储在扩展名为.json的文件中吗?

额外的特点:

我曾经有两个同名文件,一个是.json文件,另一个是.cshtml,它们在同一个目录中.在这段时间内,上面的函数没有返回404,实际上它根本没有返回任何内容......它没有做任何事,但它没有返回任何错误.

如果重要的话,所有ID和选择器都经过五元检查(以及更多).

上面的函数有什么问题,或者外部.js文件(或WebMatrix的IIS)不能像这样访问另一个外部.json文件?

Wol*_*olf 5

您需要将.json文件的有效MIME类型添加到网站或目录中. 对于下面的步骤

  1. 在IIS管理器中,右键单击要为其添加MIME类型的网站或网站目录,然后单击"属性".
  2. 单击HTTP标头选项卡.
  3. 单击Mime类型.
  4. 单击新建.
  5. 在"扩展名"框中,键入文件扩展名.(即.json)
  6. 在"MIME类型"框中,键入与计算机上定义的文件类型完全匹配的描述.如果定义已在更高级别定义的MIME类型,系统将提示您选择MIME类型应驻留的级别.请注意,您可以使用mime类型text/plain.
  7. 单击确定.

如果您在IIS Express上使用WebMatrix,请按照这些步骤操作

  1. 使用管理员权限打开控制台应用程序.
  2. 导航到IIS Express目录.它位于Program Files或Program Files(x86)下
  3. 运行命令appcmd set config/section:staticContent/+ [fileExtension ='json',mimeType ='text/plain']