3

例如,在一个外部 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 文件?

4

2 回答 2

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']
于 2013-01-03T21:44:53.093 回答
4

听起来您需要在 applicationHost.config 中为 *.json 文件添加静态映射。这篇文章很好地解释了如何向 IIS Express 添加 mime 类型:

http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

您还可以查看 IIS Express 日志以查看日志中是否有更多详细信息。它们通常位于 ~\Documents\IISExpress\Logs

快乐编码!

于 2013-01-03T21:45:28.007 回答