ajax - Azure Web App不加载.json文件

标签 ajax azure azure-web-app-service

我的 Azure Web App 遇到问题,因为它无法加载位于服务器上的 .json 文件。应用程序运行良好,直到需要从 .json 文件加载数据。通过单击运行 javascript 代码(进行 XmlHttpRequest 调用)的按钮来触发该事件。

这是发出请求的 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 文件不是。

任何人都可以阐明这个问题以及如何解决吗?

谢谢!

最佳答案

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <remove fileExtension=".json"/>
      <mimeMap fileExtension=".json" mimeType="application/json"/>
    </staticContent>
  </system.webServer>
</configuration>

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

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

希望对你有帮助:)

关于ajax - Azure Web App不加载.json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48137750/

相关文章:

php - 检查用户名是否存在 - 跨浏览器问题!建议?

ajax - axios AJAX调用nulls参数

javascript - spring mvc 环境中的 jQuery ajax 调用数据参数问题

azure - 如何使用文件服务将二进制文件 (PDF) 上传到 Azure

json - 测试 Azure 解决方案模板的 createUIDefinition.json 文件的最简单方法是什么?

sql-server - 单个查询中的多个分组信息

Azure Web应用程序无法访问虚拟网络中的openai专用端点

c# - Azure Web 应用程序突然不再支持文化

javascript - Casperjs ajax 调用 - waitForResource 和解析错误

azure - 对 Azure 数据库上的 "wait operation timed out"进行故障排除