Cross Domain Web-Worker?
Habe ich https://domain1.com (domain1) und https://domain2.com (domain2).
Domain2 dient eine Seite mit javascript mit einem header "Access-Control-Allow-Origin: *"
Domain1 läuft einige javascript-code, der ruft:
new Worker("//domain2.com/script.js")
Browser werfen-Sicherheit Ausnahmen.
Seit dem schreiben dieser Frage, habe ich dieses problem umgehen, indem ajaxing das Skript, blobbing es und es läuft, doch bin ich etwas fehlt in der ursprünglichen Idee?
- Es gibt eine doppelte here und die here aber keiner von Ihnen scheinen zu haben eine definitive Antwort.
- Mit Hilfe des ajax - Daten die URL-Ansatz funktioniert nicht in allen Browsern, laut das MDN-Seite.
- Und soweit ich das sagen kann, aus der W3C-Spezifikation, die Regeln implizieren, dass der worker-Skripts wirklich zu tun haben werden, stammen aus der gleichen Domäne wie die zugehörige Seite. Ich glaube nicht, dass CORS-Header werden auch überprüft.
- Zahlen, da die Registerkarte "Netzwerk" gar nicht nahe, dass es sogar das abrufen der Seite zu überprüfen. Also, wenn AJAX es tun können, warum können wir nicht tun, es direkt? :/
- Ich weiß nicht, die Idee, die hinter der Art, wie es funktioniert. Im Falle von ajax, gut, das ist ein älterer standard. Und wieder bitte beachten Sie, dass Sie die Problemumgehung wird nicht unbedingt funktionieren, da einige Browser betrachten, dass die Daten-URL, die Sie bauen, zählt nicht als "same-origin" für eine web-worker.
- dies kann man dieses Problem lösen. stackoverflow.com/questions/21913673/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe auch das gleiche problem, hoffe dies kann Ihnen helfen, https://gist.github.com/jtyjty99999/a730a17258fca04bfca3
SecurityError
.new Blob
mitURL.createObjectURL
. Wusste nicht, dass es möglich ist.Zitat von https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
Den HTML5-Arbeiter ist ein ziemlich neues Konzept, und ich bin mir nicht sicher, wie Sie denselben Ursprung Ausnahmen gelten jedoch, mit
XmlHttpRequest
, ist es möglich, den Zugriff auf Ressourcen in einer anderen Domäne , wenn man die Kontrolle über den server, es läuft auf. Ressourcen auf fremden Domänen erfolgt über Preflight requests Bedeutung, dass zunächst eine OPTIONS-Anfrage gesendet wird, um eine Ressource und wenn die Antwort darauf hat die entsprechenden access-control-Header (Access-Control-Allow-Methods
,Access-Control-Allow-Origin
als minimum), dann wird die Anfrage wiederholt mit der ursprünglichen Methode und erhält die Ressource in der Antwort.owner origin
. Klar, die MDN-doc sagt, dass "Die URI als parameter übergeben, von der Arbeiter-Konstruktor muss gehorchen den gleichen-origin policy" und über die same-Origin-Policy, es sagt, dass cross-origin-Zugriff unter bestimmten Voraussetzungen erlaubt: developer.mozilla.org/en-US/docs/Web/JavaScript/...Haben Sie ermöglichen, Methoden gesetzt?
Versuchen Sie, diese zu Ihrem header: