1

在我的反应项目中,如果我在新选项卡中打开链接,Chrome 将永远不会发送获取请求:

chrome 网络选项卡
chrome 控制台选项卡

这是标准提取:

let h = new Headers();
    h.append('Accept', 'application/json');
    h.append('Content-Type', 'application/json');
    h.append('X-Custom-Header', '123');

    let req = new Request(url, {
        method: 'GET',
        headers: h, //заголовки
        mode: 'cors'
    });
    fetch(req).then((response) => {
        if(!response.ok) {
            console.log(response);
        }
        return response;
    })
    .then((response) => response.json())
    .then((items) => console.log(items.data))

我尝试在开发控制台中执行此操作:

async function load() {
        let response = await fetch('/somesite.com', {
            method: 'GET',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'X-Custom-Header': '123'
            },
            mode: 'cors'
        });
        let data = await response.json();
        console.log(data);
    }

    load();

XHR 请求也不起作用。控制台日志很干净,没有错误。在 Mozilla/Opera/Safari 中一切都很好。

禁用chrome://flags/#out-of-blink-corsChrome 将正确发送请求。但它并不能解决所有用户的问题。
Access-Control-Allow-Origin正确设置。

我不明白有什么问题...

有用的链接:
https://support.google.com/chrome/thread/11089651?hl=en
https://www.chromestatus.com/feature/5768642492891136
https://www.chromium.org/Home/loading/oor-cors

4

0 回答 0