如何让 Worker() 跨域工作?

2024-02-19

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

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

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


尝试这个:

  • 使用工人的代码创建一个函数
  • 获取函数的字符串表示形式 (.toString),删除第一行和最后一行。现在你有了一个包含工人代码的字符串
  • 创建一个新的 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())
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Worker() 跨域工作? 的相关文章

随机推荐