Javascript 为什么我可以获取这个跨源文件,但我可以';你不能从中创建一个工人吗?
有问题的文件是这样的:Javascript 为什么我可以获取这个跨源文件,但我可以';你不能从中创建一个工人吗?,javascript,amazon-s3,cors,worker-loader,Javascript,Amazon S3,Cors,Worker Loader,有问题的文件是这样的:http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js 该文件由s3存储桶托管,该存储桶允许任何域获取该文件。我还设置了以下CORS策略: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-
http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js
该文件由s3存储桶托管,该存储桶允许任何域获取该文件。我还设置了以下CORS策略:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
但是,直接使用它构造辅助对象会导致错误:
> new Worker("http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js")
VM1925:1 Uncaught DOMException: Failed to construct 'Worker': Script at 'http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js' cannot be accessed from origin 'https://stackoverflow.com'.
at <anonymous>:1:1
(anonymous) @ VM1925:1
>新工人(“http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js")
VM1925:1未捕获的DomeException:无法构造“Worker”:脚本位于http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js“无法从源站访问”https://stackoverflow.com'.
时间:1:1
(匿名)@VM1925:1
记住,内容安全策略
控制可以通过各种浏览器机制加载哪些源。特别是,我需要通配符worker src
指令:HTML规范要求获取新的worker(url)
url,如果url与调用它的文档的来源不同,则获取失败。所需的规范文本位于,其中表示请求模式为同一来源
。对于在同源
模式下向非同源URL发出的请求,浏览器需要抛出。但是,如果您首先使用importScripts(…)
和同一个URL创建一个Blob URL,然后使用该Blob URL调用new Worker(…)
,它就会工作。看见
> new Worker("http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js")
VM1925:1 Uncaught DOMException: Failed to construct 'Worker': Script at 'http://web-reports-static.s3.us-east-2.amazonaws.com/_next/e02d25753c0f34f5e22c.worker.js' cannot be accessed from origin 'https://stackoverflow.com'.
at <anonymous>:1:1
(anonymous) @ VM1925:1