Azure Web App无法加载.json文件

时间:2018-01-07 13:48:32

标签: ajax azure azure-web-sites

我遇到Azure Web App的问题,因为它没有加载位于服务器上的 .json 文件。应用程序运行正常,直到需要从.json文件加载数据。单击一个运行调用XmlHttpRequest调用的javascript代码的按钮即可触发该事件。

这是发出请求的jQuery代码(放在 mvc_test.js 文件中):

$(document).ready(function () {

    var model = {
        userLanguage: 'en-EN',

        getData: function() {
            return $.ajax({
                    url: "https://easyfabric.azurewebsites.net/js/clauses_array.json",
                    type: "GET",
                    dataType : "json", //"text"
                    timeout: 5000
                });
        }
    };

我使用了资源的绝对路径,但是我使用相对路径收到了相同的错误。

上面的代码应该获取数据并将其传递给将数据打印到控制台的函数。

之前有过工作,但后来我故意改为错误的路径来测试包含错误信息的模态窗口。当我改回正确的路径(昨天)时,我开始收到404错误。我已经将***。json文件***移动到与xhr请求的javascript文件相同的文件夹中但是也无效。 index.html,.css和.js文件,jquery和office-ui框架加载没有问题。

应用程序的内容从github存储库部署到服务器。

Azure门户诊断部分中的失败请求跟踪日志向我发出SECURITY_DENIED_BY_MIMEMAP和MODULE_SET_RESPONSE_ERROR_STATUS警告。

似乎服务器上的某些安全设置拒绝访问.json文件。但奇怪的是,加载了同一文件夹中的 .js 文件(因为我清除了浏览器的缓存)和 .json < / em> 文件不是。

任何人都可以解决这个问题,如何解决?

谢谢!

1 个答案:

答案 0 :(得分:10)

几个月前我遇到了同样的问题。 我通过添加web.config这行代码来修复它

<staticContent>
  <remove fileExtension=".json"/>
  <mimeMap fileExtension=".json" mimeType="application/json"/>
</staticContent>
节点

下的

<configuration>
   <system.webServer>

这实际上告诉IIS将所有 .json文件作为静态文件提供,因为默认情况下此功能已被禁用。

如果您没有web.config文件,则需要在网站的根文件夹中创建该文件。

我希望我能帮助你:)