CORS在MS Edge中被阻止,但在所有其他浏览器中都可以使用



设置:

  • 网站正试图从S3下载文件(可以是任何配置了正确CORS策略的服务器(
  • 正在尝试使用FileSaver.js:download("https://s3url.com/path/you/do/not/need/to/no.jpeg")下载文件
  • 幕后的FileSaver.js是这样做的:
var xhr = new XMLHttpRequest()
xhr.open('GET', url)
  • Chrome和FF运行良好
  • S3 CORS政策全面开放
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE",
"HEAD"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]

问题

仅在MS Edge*中,使用FileSaver.js,任何在S3中保存资源的尝试都会因blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.而失败

  • Edge版本90.0.818.56(官方版本(

我终于找到了一个可能的"为什么";为此和解决方法。

变通办法是使用测试版Edge。

我认为请求被阻止是因为在Edge中运行XMLHttpRequest时Origin请求标头丢失。

我希望其他人能发现这一点,并停止转动他们的车轮!如果您在面向客户端的应用程序中使用此功能,这并不是很有帮助。

更多细节可能来自这里:参考:https://learn.microsoft.com/en-us/answers/questions/314369/xmlhttprequest-getting-blocked-by-cors-policy-in-e.html?childToView=318134#comment-318134

我还用FileSaver.js打开了一个问题,以防你以与我相同的方式来到这里,并希望FileSaver发挥作用。

相关内容

最新更新