“SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.” in IE11 with fetch API
我正在使用JavaScript的fetch函数从localhost调用外部POST请求。
除IE11之外,其他所有浏览器都运行正常,IE11会在请求中返回此错误:
这是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | export const signIn = (email, password) => { const base64 = btoa(`${email}:${password}`); const headers = new Headers({ Authorization: `Basic ${base64}` }); return new Promise((resolve, reject) => { fetch(`${__API__}/spa/token`, { method:"POST", headers, credentials:"include" }) .then(resp => { if (resp.status >= 400) { reject(resp); } resolve(resp); }) .catch(reject); }); }; |
我在另一个线程中读过的"解决方案"之一(如何解决IE中的错误" SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝。")是在此处更改IE的配置:
Internet选项>安全>启用以下设置:其他>跨域访问数据源。
对我来说,这不是解决方案,因为我不会要求最终用户更改其配置。
另外,当我在IE中检查请求时,可以看到POST实际上被称为GET。
更新:如果我删除标头选项,它可以工作,但是我需要标头。
好的,这就是我的解决方案:
我发现问题在于发送带有标头的提取。 如果首先我发送时没有标题(如预检请求),然后正常发送它就可以了。
当然,这仅适用于IE。