繁体   English   中英

IE11中使用提取API的“ SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝。”

[英]“SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.” in IE11 with fetch API

我正在使用JavaScript的fetch函数从localhost调用外部POST请求。

除IE11之外,其他所有浏览器都运行正常,IE11会在请求中返回此错误:

“SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.” in IE

这是代码:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM