我遇到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> 文件不是。
任何人都可以解决这个问题,如何解决?
谢谢!
答案 0 :(得分:10)
web.config
这行代码来修复它
<staticContent>
<remove fileExtension=".json"/>
<mimeMap fileExtension=".json" mimeType="application/json"/>
</staticContent>
节点下的
<configuration>
<system.webServer>
这实际上告诉IIS将所有 .json
文件作为静态文件提供,因为默认情况下此功能已被禁用。
如果您没有web.config
文件,则需要在网站的根文件夹中创建该文件。
我希望我能帮助你:)