Ich bin ein Webworker mit einem Javascript-Klecks verwenden, da ich das Projekt in der Lage sein wollen minify:CORS Problem, mit Webworker mit Blob
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));
im Browser erhalte ich CORS-Fehler. Warum fordert der Webworker CORS? Ich habe es genau überprüft. Der Webworker verursacht den CORS-Fehler. Derselbe Fehler in Chrome und Firefox.
XMLHttpRequest cannot load . Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
In der Dev-Umgebung verwende ich Knoten mit browserfy. Ich habe versucht, CORS dort mit dem npm-Paket 'cors' zu aktivieren;
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
});
}
Kein Erfolg. Was kann ich tun?
"Im Browser bekomme ich CORS-Fehler" - Was sagt die Fehlermeldung? – Quentin
@Quentin, ich habe die Frage mit der Fehlermeldung aktualisiert. – Per
Die Fehlermeldung besagt, dass Sie keine crossOrigin-Anfrage aus dem 'blob:' Protokoll machen können ... klingt irgendwie komisch, aber eine Abhilfe wäre die Verwendung eines FileReaders, die Konvertierung Ihres Blobs in eine DataURI-Version und das Starten Ihres Worker DatenURI. Gemäß der Nachricht kann 'data:' URI Schema solche Anfragen machen. – Kaiido