2010-10-03 12 views
9

Gibt es eine Möglichkeit, Ihrem localhost mitzuteilen, dass er domainübergreifende Ajax-Aufrufe durchführen kann?localhost :: cross domain ajax

Ich brauche das für meine Tests.

Wenn es ein Browser-spezifisches Problem ist, verwende ich Google Chrome.

Prost.

+0

FYI die akzeptierte Antwort ist ein bisschen veraltet, dachte, dass Sie vielleicht wissen möchten. – Jacksonkr

Antwort

2

Nein, das ist absolut nicht möglich. Wenn es vom Benutzer deaktiviert werden könnte, wäre es das Hauptziel für jeden mit ruchlosen oder zweifelhaften Absichten und so anfällig wie jede andere Software, die es zu verwerten gilt. Es ist schwierig genug, sichere Software zu machen, ohne auf noch attraktivere Ziele zu malen.

Die einzige Möglichkeit, domainübergreifendes Ajax zu implementieren, besteht darin, Anforderungen über ein serverseitiges Skript zu routen.

Es ist erwähnenswert, dass es vielleicht ein Hoffnungsschimmer für Sie: in Form von cross-window messaging with HTML 5 postMessage

Es ist wahrscheinlich lohnt eine Lese einiger verwandter mit (obwohl ich nicht sicher bin, sie sind doppelt) Fragen:


als Antwort Herausgegeben Kommentar:

Sie meint also, ein Skript, das die params nimmt, fügt sie die Anforderung sendet es aus, und dann echos aus dem Response-Objekt?

Im Wesentlichen ja. Im Bildformat:

client |--------------> | server side |-----------------------> | remote domain 
browser | <----ajax------| script | <------------------------|--/ 

Edited hinzufügen, dass dies jetzt eine Art möglich ist, Cross-Origin Resource Sharing mit (CORS); in dem ein Skript aus einer Domäne einen Origin-HTTP-Header mit der URL der Seite sendet und der Server (falls konfiguriert) entweder mit einem Fehler (wenn CORS deaktiviert oder nicht unterstützt wird) oder mit angeforderten Daten antwortet.

Referenzen:

+0

Also meinst du hast ein Skript, das die Parameter nimmt, fügt sie zu der Anfrage, sendet es, und dann Echos aus dem Antwortobjekt? – Hailwood

25

Es ist sehr möglich. Beginnen wir mit einem Dev-Browser.

Schritt 1: herunterladen Chromium

Fenster - http://www.chromium.org/getting-involved/download-chromium

Mac - http://www.macupdate.com/app/mac/36244/chromium/

Es sollte ein Build bereit zu gehen, aber diese Orte im Laufe der Zeit ändern. Also, wenn diese mit 404 enden, machen Sie eine Google-Suche nach Windows Chromium Download und Sie werden es finden.

Schritt 2: Dann führen Sie die ausführbare Datei mit diesem Flag nach. --disable-web-security

Windows - Erstellen Sie eine Verknüpfung zu der ausführbaren Datei und kennzeichnen Sie dies in den Eigenschaften. Oder laufe von [CMD].

Mac - Öffnen Sie ein Terminal und führen Sie diese gerade von dort mit der Flagge.

Und Sie sollten gut gehen. Ich habe auch einen schnellen Apache-Dienst eingerichtet und liefere eine 127.0.0.1 konfigurierte Domäne, aber localhost sollte in Ordnung sein. Hier ist der Beweis.

Cross-domain security block disabled

Ich hoffe, das hilft Ihnen!