我正在使用一个带有javascript blob的webworker,因为我希望能够缩小项目:
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中也有同样的错误。
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;
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
});
}没有成功。我能做什么?
发布于 2020-11-28 05:50:40
你可以在任何地方使用heroku应用程序Cors来绕过跨域请求错误,虽然还没有对网络工作者进行测试,但值得一试。
https://cors-anywhere.herokuapp.com
只需将上面的网址添加到您正在尝试制作的XMLHttpRequest的开头,让我知道它是否工作,因为我目前仍在学习节点和webworkers。
发布于 2016-11-22 01:06:27
通常,CORS请求有一个pre请求,该请求询问请求是否被允许。您需要指定在目标web服务器域请求上允许此CORS请求。除非您尚未执行此操作,否则CORS请求将不起作用。对于这些请求来说,这是非常必要的。
您可以通过添加CORS allowed标头来完成此操作。在nginx或apache中,您只需将.htaccess文件添加到目标文件夹即可完成此操作。我猜在node.js web服务器引擎上也有等价物。祝好运!
https://stackoverflow.com/questions/40725483
复制相似问题