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

时间:2013-01-03 21:38:56

标签: javascript jquery ajax 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);
    });
});

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

其他特性:

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

如果重要的话,所有的ID和选择器都经过五元组检查(以及之后)。

上述函数是否有问题,或者外部.js文件(或WebMatrix的IIS)是否无法访问另一个外部.json文件?

1 个答案:

答案 0 :(得分:5)

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

  1. 在IIS管理器中,右键单击网站或网站目录 要添加MIME类型,然后单击“属性”。
  2. 单击“HTTP标头”选项卡。
  3. 点击Mime类型。
  4. 点击新建。
  5. 在“扩展名”框中,键入文件扩展名。 (即.json
  6. 在“MIME类型”框中,键入与其完全匹配的说明 计算机上定义的文件类型。如果您定义了MIME类型 已经在更高级别定义,系统会提示您 选择MIME类型应驻留的级别。请注意,您可以将mime类型用作text/plain
  7. 单击“确定”。
  8. 如果您在IIS Express上安装WebMatrix,请按照以下步骤操作

    1. 使用管理员权限打开控制台应用程序。
    2. 导航到IIS Express目录。这属于计划 文件或程序文件(x86)
    3. 运行命令appcmd set config / section:staticContent / + [fileExtension = 'JSON',mime类型= 'text / plain的']