【问题标题】:"XMLHttpRequest cannot load file:///... Preflight response is not successful" error“XMLHttpRequest 无法加载 file:///... 预检响应不成功”错误
【发布时间】:2018-05-30 02:42:18
【问题描述】:

我正在构建一个网站,该页面使用 Jquery .load() 函数加载导航栏和其他一些资源(如下面的代码所示)。

<script>
        $(function () {
            $("#navbar-placeholder").load("subpage_navbar.html");
        });
</script>

在 safari 5 中本地查看计算机上的 .html 文件时,一切正常,过去在 safari 11 中也可以正常工作,但现在当我尝试打开文件时出现错误:

XMLHttpRequest 无法加载 file:///... 预检响应不成功

我是否需要在 safari 中更改任何偏好以使其像以前一样工作?

【问题讨论】:

    标签: jquery safari xmlhttprequest


    【解决方案1】:

    XMLHttpRequest 不适用于文件协议,仅适用于 http、data、chrome、chrome-extension、https。

    您需要托管您的文件或使用下面的链接来允许这样做。

    Allow Google Chrome to use XMLHttpRequest to load a URL from a local file

    在 Safari 11 中文件协议访问受到限制。

    [除非从“开发”菜单中选择“禁用本地文件限制”,否则现在阻止来自 file:// 的 CORS 和跨源访问。]

    【讨论】:

    • 但我之前能够使用文件协议让它工作,它仍然在 safari 5 中工作。网络日志将请求显示为 GET 方法、文本/html 类型、(待定)状态.
    • "CORS 和来自 file:// 的跨源访问现在被阻止,除非从开发菜单中选择禁用本地文件限制。" See more here
    • 在开发菜单中选中禁用本地文件限制后,一切正常。谢谢!
    猜你喜欢
    • 2018-03-03
    • 2016-06-06
    • 2017-02-04
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多