Same origin policy - JavaScript ruft PHP auf

Ich weiß, dass dies ein beliebtes Thema ist, aber ich habe noch keine Antwort gefunden, die vollständig ist.

Ich versuche, unseren "Kunden" eine einfache Möglichkeit zu bieten, eine Google Map auf ihrer Website zu platzieren, die die Position unserer Kunden (oder eine Teilmenge davon) auf der Karte darstellt. Die Kunden befinden sich in einer MySQL-Datenbank, die von einem PHP-Skript (gemäß dem Beispiel von Google) im Handumdrehen in XML umgewandelt wird. Das funktioniert auf meiner Website einwandfrei, aber wenn ich es auf einer anderen Website versuche, darf der xmlHTTPRequest nicht auf PHP schauen, da es sich auf einer anderen Domain befindet.

Ich kann dies umgehen, indem ich eine andere PHP-Datei in die andere Domäne schreibe, die einfach die PHP-Datei in der ursprünglichen Domäne liest. Aber nicht bei allen unseren Kunden läuft PHP auf ihren Servern. Gibt es eine Möglichkeit, die XML-Ergebnisse mit JavaScript aus unserer Datenbank zurückzugeben?

Ein paar Punkte:

Das JavaScript, das die xmlHTTPRequest erstellt, sitzt immer noch aufunser server - unsere Kunden verlinken über ein Skript-Tag darauf. Ich dachte, das wäre vielleicht genug, aber der "Ursprung" (laut Chrome jedenfalls) wird immer noch als Domain # 2 angesehen.

Das ist großartig: Wenn ich einen absoluten Verweis im xmlHTTPRequest verwende (zB request.open ('GET', 'http://mydomain.com/api/foo.php', true)), schlägt dies im IE fehl. aber wenn ich einen relativen Verweis ('/api/foo.php') verwende, funktioniert es.

Ich weiß nicht genug darüber, aber könnte ich JSON verwenden? Ich habe gesehen: 'script src = "http: //..../someData.js? Callback = some_func"' aber ich weiß nicht wie, ich würde 'someData.js' wie JSON aussehen lassen? (Ich denke sehr viel über Funktionen nach, was ist wahrscheinlich falsch?).

Ich habe versucht, Folgendes hinzuzufügen: header ("Access-Control-Allow-Origin: *"); an die Spitze des PHP, das das XML ausgibt, aber es macht nicht wirklich viel, was ich sagen kann!

Wenn ich einen PHP-Wrapper auf dem Server des Clients verwende, was ist der Vorteil einer cURL-Anfrage, anstatt dass nur file_get_contents oder fopen verwendet werden?

Sorry, viele Fragen, aber jede Anleitung wäre sehr dankbar.

Massive danke,

Matt

Antworten auf die Frage(6)

Ihre Antwort auf die Frage