Frage

Ich versuche, eine Anforderung für einige Daten von einer externen Website mit einer API zu starten.

Wenn ich die Anfrage kopiere und in meinen Webbrowser einfüge, funktioniert sie einwandfrei. Beispiel wie (http://example.com/json/user/search/all) Ich kann die Ergebnisse im Browserfenster sehen.

Ich versuche jedoch, diese Abfrage von einer Website aus zu starten, und stoße auf ein Problem: Verwenden Sie ein Javascript wie folgt: var req= new XMLHttpRequest (); req.open ('GET', oben erwähnt, wahr) req.send ()

Ich erhalte die Fehlermeldung: Origin (MyDOMAIN) ist von Access Control Allow Origin nicht zulässig.

Auch hier bin ich ziemlich neu in XMLHttpRequests und ich denke, dass dies ziemlich einfach zu lösen ist. Weiß jemand?(Ich habe versucht, Google zu suchen, konnte aber keine gute Antwort finden.) Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie dürfen keine standortübergreifenden XMLHttpRequests ausführen und müssen a verwendenProxy, um es zu erreichen.

Dieser Artikel von Yahoo erklärt es ausführlich und gibt weitere Ideen dazuum es zu lösen.Grundsätzlich sollte dies jedoch nicht erfolgen, da diese Einschränkung aus Sicherheitsgründen besteht.

Es wäre besser, wenn Sie beispielsweise PHP und fopen() verwenden und diese Seite einfach mit Ihrem XMLHttpRequest-Objekt aufrufen würden.

Andere Tipps

Das Problem ist die Richtlinie gleichen Ursprungs .Dies ist eine Regel, nach der XMLHTTPRequests nur verwendet werden dürfen, außer in derselben Domäne wie die Originalseite.Dies ist aus Sicherheitsgründen.

Der einfachste Weg, dies zu umgehen, besteht darin, ein serverseitiges Skript zu schreiben, das die Anforderung für Sie überträgt.

Dies ist der Schutz Ihres Browsers gegen Cross-Side-Scripting.Sie dürfen nicht auf andere Seiten zugreifen, die von einer anderen Domain stammen.

BEARBEITEN: Überprüfen Sie auch Folgendes: Cross-Site XMLHttpRequest

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top