相当于 XHR 或 Ajax 库中的 Fetch 'no-cors' 模式?

Equivalent of Fetch 'no-cors' mode in XHR or Ajax libraries?

提问人:Fabi 提问时间:2/13/2019 最后编辑:sideshowbarkerFabi 更新时间:7/14/2021 访问量:7648

问:

有没有办法在现有(以及大多数浏览器支持的)HTTP请求中编写fetch {mode: 'no-cors'}?举个例子,我想知道是否可以翻译这个:

fetch(url, { mode: 'no-cors'})
.then(function (response) {
  console.log(response);
});

放入某种 XMLHttpRequest 或 Ajax 中。我尝试了几种方法,它们的行为不同 - 我只想要 fetch 返回的不透明响应。

谢谢!

ajax cors xmlhttprequest fetch-api

评论

2赞 sideshowbarker 2/13/2019
XHR API 不提供指定“no-cors”模式的方法。鉴于 XHR 和 Fetch 是浏览器中唯一原生支持的标准 HTTP 请求 API,这意味着在浏览器级别,执行“no-cors”模式请求的唯一方法是依赖 Fetch API。因此,如果任何 Ajax 库提供具有“no-cors”请求模式的方法,则该库必然只能通过包装 Fetch API 来实现。但是所有主流浏览器的当前版本都已经支持Fetch API,并且在过去2年或更长时间内一直支持。因此,除非您需要针对一些非常古老的浏览器,否则只需使用 Fetch
0赞 Fabi 2/13/2019
谢谢你的信息。根据我所看到和测试的内容,它不适用于 IE 10-11 和某些移动浏览器。不幸的是,我在 IE 上的用户数量仍然很高。我想我必须为这些用户加载 polyfill,看看这是否有效。到目前为止,没有运气。
0赞 Andrew Tatomyr 5/11/2019
也许你要找的是(注意作为第三个参数)。xhr.open(METHOD, URL, true)true
1赞 Digital-Clouds 2/18/2020
@AndrewTatomyr 的第三个参数是是否异步执行请求,默认值为 true,因此不会对 CORS 执行任何操作: developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/openxhr.open()

答: 暂无答案