在我的反应项目中,如果我在新选项卡中打开链接,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