cors - 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(官方版本)
解决方案
我终于想出了一个可能的“为什么”和一个解决方法。
解决方法是使用beta Edge 版本。
我认为请求被阻止是因为Origin
在 Edge 中运行 XMLHttpRequest 时缺少请求标头。
我希望其他人能找到这个并且可以停止旋转他们的轮子!如果您在面向客户端的应用程序中使用它,这并不是很有帮助。
我还打开了 FileSaver.js 的问题,以防您以与我相同的方式来到这里并希望 FileSaver 工作。
推荐阅读
- linux - 无论 /dev/sda1 中的 EBS 如何,如何使 AWS EC2 允许 ssh 连接?
- python-3.x - 修复 Tkinter GUI 的缩放坐标
- python - 如何栅格化每日地理数据表?
- c++ - C++指针的地址
- vue.js - bootstrap-vue table - 多数据过滤器
- maven - 如果父级或某些依赖项有更新的版本可用,更新 pom.xml,使用 Maven 的 Jenkins 管道?
- github - R Studio 和 GitHub - 不克隆
- ibm-watson - 是否可以通过 MQTT 客户端同时连接多个指定的 IoT Watson 设备?
- javascript - 在 D3.js 中缩放/缩小文本时调整文本大小
- c++ - 检查地址是否可达