问题描述
|
假设我的html文件来自http://foo.com/index.html,其中的http://bar.com/bar.js有一个“ 0”标记。在bar.js中,我想启动一个URL为http://bar.com/worker.js的SharedWorker。有没有办法做到这一点(也许像jsonp)?
解决方法
目前,进行这种跨域访问的首选方法是使用W3 CORS规范。
跨域资源共享
但是,如果您不控制bar.com上的网站,这可能不适合您。如果这样做,那么CORS绝对是一个不错的选择,但是如果bar.com由另一方运行,则可能需要使用JSONP,因为CORS依赖于该站点发回特定的标头,以授权浏览器下载您请求的资源。
, 这是我发现的解决方案:
在函数内编写脚本(可以是内部函数)
使用function.toString()获取文本(删除函数声明并关闭大括号)
将文本附加到BlobBuilder并获取blob
使用window.URL.createObjectURL将Blob转换为url
使用该URL作为工作人员