首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS问题,使用带有blob的webworker

CORS问题,使用带有blob的webworker
EN

Stack Overflow用户
提问于 2016-11-22 00:59:56
回答 2查看 1.2K关注 0票数 0

我正在使用一个带有javascript blob的webworker,因为我希望能够缩小项目:

代码语言:javascript
复制
window.URL = window.URL || window.webkitURL;
                var res = elements.worker.toString();
                res = res.substr(res.indexOf("\n")+1,res.length-4-res.indexOf("\n"));
                console.log(res)
                var blob;
                try {
                    blob = new Blob([res], {type: 'application/javascript'});
                } catch (e) { // Backwards-compatibility
                    window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
                    blob = new BlobBuilder();
                    blob.append(res);
                    blob = blob.getBlob();
                }
                load.workNode = new Worker(URL.createObjectURL(blob)); 

在浏览器中,我得到CORS-error。为什么webworker需要CORS?我已经仔细检查过了。webworker导致CORS-error。在chrome和firefox中也有同样的错误。

代码语言:javascript
复制
XMLHttpRequest cannot load . Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

在dev-environment中,我将node与browserfy一起使用。我尝试在那里使用npm包‘CORS’启用cors;

代码语言:javascript
复制
var cors = require('cors');
var proxy = require('./proxy');

function browserSyncInit(baseDir, files, browser) {
  browser = browser === undefined ? 'default' : browser;

  var routes = null;
  if(baseDir === paths.src || (util.isArray(baseDir) && baseDir.indexOf(paths.src) !== -1)) {
    routes = {
      '/bower_components': 'bower_components'
    };
  }

  browserSync.instance = browserSync.init(files, {
    startPath: '/',
    server: {
      baseDir: baseDir,
      middleware: [proxy, cors()],
      routes: routes
    },
    port: 4000,
    browser: browser
  });
}

没有成功。我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2020-11-28 05:50:40

你可以在任何地方使用heroku应用程序Cors来绕过跨域请求错误,虽然还没有对网络工作者进行测试,但值得一试。

https://cors-anywhere.herokuapp.com

只需将上面的网址添加到您正在尝试制作的XMLHttpRequest的开头,让我知道它是否工作,因为我目前仍在学习节点和webworkers。

票数 -1
EN

Stack Overflow用户

发布于 2016-11-22 01:06:27

通常,CORS请求有一个pre请求,该请求询问请求是否被允许。您需要指定在目标web服务器域请求上允许此CORS请求。除非您尚未执行此操作,否则CORS请求将不起作用。对于这些请求来说,这是非常必要的。

您可以通过添加CORS allowed标头来完成此操作。在nginx或apache中,您只需将.htaccess文件添加到目标文件夹即可完成此操作。我猜在node.js web服务器引擎上也有等价物。祝好运!

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40725483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档