Cross-domain-Ajax-Anfrage innerhalb der js-Datei
Hier ist das problem:
1.) Wir haben die Seite hier... www.blah.com/mypage.html
2.) Die Seite fordert eine js-Datei www.foo.com so...
<script type="text/javascript" src="http://www.foo.com/jsfile.js" />
3.) "jsfile.js" Prototyp verwendet, um eine Ajax-Anfrage zurück www.foo.com.
4.) Der ajax-request Aufrufe www.foo.com/blah.html. Die callback-Funktion wird die html-Antwort und wirft es in ein div.
Scheint dies nicht zu funktionieren aber ich denke, es ist XSS. Ist das richtig?
Wenn ja, wie kann ich dieses problem lösen? Gibt es eine andere Möglichkeit, um meine html-von www.foo.com zu www.blah.com auf dem client, ohne mit einem iframe?
Es ist wirklich ein schöner Artikel über cross-domain-ajax-Anfrage - tek-insight.blogspot.com/2010/05/...
InformationsquelleAutor ChrisDiRulli | 2008-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es XSS und es ist verboten. Sollten Sie wirklich nicht tun Dinge auf diese Weise.
Wenn Sie wirklich brauchen, stellen Sie Ihre AJAX-code, rufen Sie die lokalen code (PHP, ASP, was auch immer) auf blah.com und machen Verhalten sich wie client und Holen, was Sie brauchen, aus foo.com und, dass die Rückkehr an den client zurück. Wenn Sie PHP verwenden, können Sie dies mit fopen('www.foo.com/blah.html', 'r') und dann den Inhalt zu Lesen, als ob es eine reguläre Datei ist.
Natürlich allow_remote_url_fopen (oder was auch immer es genau heißt) aktiviert sein muss, um in deiner php.ini.
InformationsquelleAutor Milan Babuškov
Es ist ein w3c-Vorschlag für das zulassen von Webseiten zu geben Sie anderen Seiten, die erlaubt sind, um cross-site Abfragen. (Wikipedia vielleicht möchten Sie erlauben, alle Anfragen für Artikel, die sagen, aber google mail würde nicht wollen, auf das zulassen von requests, da diese es erlauben würde, jede website zu öffnen, wenn Sie eingeloggt sind, google mail, um Ihre Mails zu Lesen).
Diese zur Verfügung stehen könnten, irgendwann in der Zukunft.
CORS
.InformationsquelleAutor tatwright
Wie oben erwähnt JSONP ist ein Weg, um dieses. Jedoch, die Website, die Sie anfordern, die Daten von den Anforderungen zur Unterstützung von JSONP-in Reihenfolge für Sie verwenden, auf dem client. (JSONP im wesentlichen injiziert ein script-tag in die Seite, und bietet eine callback-Funktion, die aufgerufen werden soll mit den Ergebnissen)
Wenn die Website, die Sie eine Anforderung nicht unterstützt JSONP müssen Sie proxy die Anfrage auf Ihren server. Wie oben erwähnt, können Sie dies auf Ihrem eigenen server oder, was ich in der Vergangenheit getan haben, ist ein http://www.jsonpit.com, die über den proxy die Anfrage für Sie.
InformationsquelleAutor user1843783
Eine option besteht in der Implementierung einer proxy-Seite, die die benötigte url als parameter. z.B. http://blah.com/proxy?uri=http://foo.com/actualRequest
Natürlich. Ich dachte, es war gemeint, als ich sagte, "implementieren".
InformationsquelleAutor Rohit
JSONP wurde teilweise entwickelt, um das problem, das Sie mit
http://ajaxian.com/archives/jsonp-json-with-padding
JQuery hat es in den $.getJSON Methode
http://docs.jquery.com/Ajax/jQuery.getJSON
InformationsquelleAutor Brian Hedler
Die Methode, die oben gezeigt werden konnte, ein großes Sicherheits-Loch.
Schlage vor, Sie überprüfen Sie den Namen der site gegen eine weiße Liste und erstellen Sie die aktuelle URI als Proxy auf der server-Seite.
InformationsquelleAutor Chris Nava
Für cross-domain-trifft, ist dies ein gutes Beispiel und das ist jetzt betrachtet als etwas, was "standard" http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html.
gibt es andere Möglichkeiten, wie z.B. die Injektion von iframes mit dem Dokument.domain verändert
http://fettig.net/weblog/2005/11/28/how-to-make-xmlhttprequest-connections-to-another-server-in-your-domain/
Ich noch agre, dass der einfache Weg ist der Aufruf einen proxy in der gleichen Domäne, aber dann ist es nicht wirklich der client-Seite WS-Aufruf.
InformationsquelleAutor varun