我正在使用js fetch API从JSON检索数据。 它工作正常(即使在IE 11中也是如此),除了在Edge 17中我得到302之外,响应标头是:
我的本地网站是在Mac上,我正在使用BrowserSync通过192.168.100.X:3000进行访问 然后我更新了我的PC主机文件,如下所示:
192.168.100.X http://local.mysite.com
这是我的提取呼叫:
fetch('/fr/fil-actualites-json', { mode: 'cors' })
.then(
function(response) {
console.log('code :' +response.status);
if (response.status !== 200) {
console.log('Looks like there was a problem. Status Code: ' +
response.status);
return;
}
// Examine the text in the response
response.json().then(function(data) {
// do some stuff
});
}
)
.catch(function(err) {
console.log('Fetch Error :-S', err);
});
感谢您的帮助;)
答案 0 :(得分:3)
Safari抛出此错误:
unhandled promise rejection syntaxerror the string did not match the expected pattern
我发现了the answer:
凭据的默认值为“ same-origin”。
但是,凭据的默认值并不总是相同。的 以下版本的浏览器实施了较旧版本的 获取默认为“忽略”的规范:
Firefox 39-60 Chrome 42-67 Safari 10.1-11.1.2如果定位到这些 浏览器,建议始终指定凭据:'same-origin' 显式地使用所有提取请求,而不是依赖默认值:
fetch('/users', {
credentials: 'same-origin'
})