Frage Kann ich eine XMLHttpRequest zu einer anderen Domain machen?


Gibt es eine Möglichkeit, XMLHttpRequest in Kombination mit anderen Domänen zu verwenden?

Ich möchte ein wenig XML von Google analysieren, ohne einen Server verwenden zu müssen, so dass es minimalistisch komplex ist.

var req = getXmlHttpRequestObject();
...
req.open('GET', 'http://www.google.de/ig/api?weather=Braunschweig', true);
        req.setRequestHeader("Content-Type","text/xml");
        req.onreadystatechange = setMessage;
        req.send(null);

Auf der Server-Seite zu tun ist keine Option, dann müsste ich nicht fragen


14
2017-11-27 21:47


Ursprung


Antworten:


Nein, nicht jetzt. Ich glaube, ich lese, dass Pläne / Entwürfe für die Zukunft von Standardgruppen in Arbeit sind, damit wir dies sicher tun können.

Cross-Site-Scripting-Schwachstellen würden sonst weit verbreitet sein.

JSONP ist eine mögliche Lösung, wenn die API der anderen Sites unterstützt wird.


10
2017-11-27 21:52



HTML5 unterstützt jetzt Cross-Origin-Anfragen mit XmlHttpRequest Level 2:

http://www.html5rocks.com/de/tutorials/cors/


6
2018-04-10 07:44



Es ist ein Sicherheitsproblem, die meisten (alle?) Browser lassen Sie das nicht tun. Sie können einen versteckten IFrame verwenden, um das Abrufen durchzuführen, aber es ist komplex genug, dass ich nur einen Server verwende (oder zu einer anderen Sprache wechseln, wenn ich nicht in einem Browser laufen muss).


2
2017-11-27 21:54



Sie können keine domänenübergreifende Anfrage machen, z.B. von example1.com zu example2.com über XMLHttpRequest oder jQuery (was ein Wrapper von XMLHttpRequest ist) aufgrund eines Sicherheitsproblems auf der Client-Seite (Browser). Dies kann effektiv in modernen Browsern implementiert werden, die HTML5 über CORS unterstützen (Cross-Origin-Ressourcenfreigabe, die nicht in jedem Client-Browser verfügbar sein kann.) Die Lösung besteht darin, ein Skript-Tag in example1.com von example2.com einzufügen, und diese Lösung ist bekannt Als JSON-P (JSON with padding) kann der Name irreführend sein, da die Daten in einem beliebigen vom Server bedienten Format vorliegen können (example2.com), dessen Implementierungscode in diesem Link angegeben ist http://newtechinfo.net/jsonp-for-cross-domain-ajax/


1
2017-11-13 12:29



Das ist aufgrund der SOP (Same Origin Policy) nicht möglich, die der Browser heutzutage benötigt, um XSS-Angriffe zu beschränken.
Sie müssen ein serverseitiges Skript (PHP oder etwas) verwenden.


0
2017-11-27 21:54



Sie können versuchen, etwas auf der Serverseite zu tun. In Ihrer Anwendung geben Sie also die Anfrage an die Gegenstelle ein, um das Ergebnis zu erhalten und es an Ihren Kunden zu senden. Der AJAX-Anruf ruft dann nur Ihren eigenen Server an und funktioniert.


0
2017-11-27 21:55



Es ist möglich, ein XHR mit HTML5 zu einer anderen Domäne zu machen. Sie können auch eine andere Protokollanforderung mit XHR machen, wenn Sie mit HTTP zu einer anderen Website kommunizieren.


0
2017-09-16 06:28