gpt4 book ai didi

html - 如何让 Worker() 对抗跨域?

转载 作者:可可西里 更新时间:2023-11-01 13:40:17 26 4
gpt4 key购买 nike

我一直在研究 BeSpin,试图让它在我的 CDN 上运行,并且通过转换为使用 JSONP,我通过了对 theme.less 的 XHR 跨域请求。我遇到的下一个问题是新的 Worker(js_file),其中 js_file 位于不同的域中。

我如何/可以为 Worker() 启用跨域?

可以直接给Worker源码吗? (即构建一个超大的 JavaScript 文件,其中嵌入了另一个文件)[这不太理想,但它应该有效]。

最佳答案

试试这个:

  • 使用 worker 的代码创建一个函数
  • 获取函数的字符串表示形式 (.toString),删除第一行和最后一行。现在您有了一个包含 worker 代码的字符串
  • 创建一个新的 BlobBuilder(window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder)
  • 将工作字符串附加到它
  • 调用 getBlob() 获取一个 blob
  • 使用窗口的 URL (window.URL || window.webkitURL) 使用 createObjectURL 创建一个对象 url
  • 为工作人员使用该 url

这是代码

function getUrlForWorker(workerFunction) {
var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder,
URL = window.URL || window.webkitURL,
mainString = workerFunction.toString(),
bodyString = mainString.substring( mainString.indexOf("{")+1, mainString.lastIndexOf("}") ),
bb = new BlobBuilder()

bb.append(bodyString)

return URL.createObjectURL(bb.getBlob())
}

关于html - 如何让 Worker() 对抗跨域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com