Ich habe gerade angefangen, jQuery und AJAX zu lernen. Ich kann eine lokale Seite (auf meiner Festplatte) in ein div via jQuery.load()
laden, aber externe Seiten scheinen nicht zu funktionieren. Ich habe sogar wireshark verwendet, um zu überprüfen, ob die Daten vom Server gesendet werden (ist es). Beispielcode ist unten:
Ist das überhaupt möglich? Wenn ja, wie?
Out of the box: Nein. Es ist ein Sicherheitsproblem. Es gibt wenige verschiedene Problemumgehungen .
Sie können keine Ajax-Aufrufe an eine andere Domäne ausführen, als das Skript stammt.
Um so etwas zu tun, müssen Sie eine Proxy-Seite auf Ihrer eigenen Seite verwenden, zB:
%Vor%getgoogle.php:
%Vor%Aus Sicherheitsgründen können Sie mit AJAX keine Seite von einer anderen Domäne (oder einem anderen Protokoll oder Port) anfordern.
Stattdessen können Sie ein serverseitiges Skript auf Ihrem Server schreiben, um Anforderungen an eine andere Domäne weiterzuleiten. (Dies ist nicht möglich, wenn Sie eine Seite von file://
url ausführen)
Ajax? Ja. XHR? Nein (es sei denn, der Browser implementiert Cross-Site-XHR , die noch nicht weit verbreitet ist.
Um die Daten mit Ajax ohne Verwendung von XHR zu erhalten, muss die externe Site die Daten im JSONP-Format bereitstellen .
Alternativ können Sie die Daten über ein serverseitiges Skript auf Ihrem Server weitergeben, sodass es vom selben Host stammt (soweit es JavaScript betrifft).
Nein, ist es nicht. Sehen Sie sich die Richtlinie für gleiche Herkunft an. Für die Website, die Sie anfordern möchten, muss JSONP aktiviert sein, damit dies funktioniert Sie würden einen domainübergreifenden Rückruf verwenden. Alternativ könnten Sie einen Proxy auf Ihrer eigenen Domain erstellen, der die Seite im Auftrag Ihrer Ajax-Anfrage ergreift.
Sie stoßen auf die Richtlinie Gleiche Herkunft . Sie können mit AJAX nicht auf Daten von einer externen Domäne zugreifen, da dies als Sicherheitsrisiko gilt. Der Grund dafür ist, dass AJAX-Anfragen mit Cookies arbeiten, die vom Browser gespeichert werden. Wenn ich auf facebook.com zugreifen würde und Sie dort angemeldet wären, würde der Cookie gesendet und ich hätte Zugriff auf Ihre persönlichen Daten / p>
Sie können Ajax nicht von einer anderen Domain aus anrufen. Überprüfen Sie die JSON-Technik dafür
Tags und Links javascript jquery ajax