首页 > 解决方案 > JS 中的 XMLHttpRequest 在 Safari 上不起作用

问题描述

在谷歌和这里搜索并尝试了一些东西。我设置的页面只能有 Javascript 代码。我已经尝试了以下请求以获取一些详细信息。它适用于 Chrome 和其他浏览器,但不适用于 Safari。我在 Safari v13.1 上收到“加载资源失败:服务器响应状态为 404 ()”。

假设这需要为 Safari 或 CORS 发送不同的标头会导致一些问题。不确定这一点。尝试了 fetch 方法,但没有奏效,并且出现了同样的问题。我相信很多人都遇到过这个问题,并在 JavaScript 中找到了解决方法。对此的任何帮助将不胜感激。

XML 请求 JS

var xhr = new XMLHttpRequest();
console.log(xhr);

xhr.onreadystatechange = function () {
    if (xhr.readyState !== 4) return; {
        console.log(JSON.parse(xhr.responseText));
    }
};
xhr.open("GET", "/api/storefront/orders/" + buildOrderID() + "");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.send();

获取请求 JS

fetch("/api/storefront/orders/" + buildOrderID() + "").then(function (response) {
    // The API call was successful!
    return response.json();
}).then(function (data) {
    // This is the JSON from our response
    console.log(data);
}).catch(function (err) {
    // There was an error
    console.warn('Something went wrong.', err);
});

标签: javascriptsafarixmlhttprequestsafari-web-inspector

解决方案


推荐阅读