Frage

Ich möchte einen Ajax -Anruf auf einen anderen Server (gleiche Domäne und Box, nur einen anderen Port) tätigen.

Meine Seite ist

http://localhost/index.html

Ich möchte eine Ajax-Get-Anfrage stellen an:

http://localhost:7076/?word=foo

Ich erhalte diesen Fehler:

Access to restricted URI denied (NS_ERROR_DOM_BAD_URI) 

Ich weiß, dass Sie keine Ajax-Anfrage an eine andere Domain stellen können, aber anscheinend umfasste dies auch verschiedene Ports?Gibt es Workarounds?

War es hilfreich?

Lösung

Haben Sie eine bestimmte Seite auf Port 80 Server-Proxy-Anfragen an den anderen Port. Zum Beispiel:

http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo

Beachten Sie die URL-Kodierung auf der letzten Abfrage-String-Argument Wert.

Andere Tipps

Sie könnten JSONP verwenden. Hier können Sie einen Rückruf mit der Bitte geben Sie die Antwort von Ihrer Ajax-Anforderung wird mit den Callback-Funktion Namen gewickelt. Anstatt XmlHttpRequest Verwenden Sie einen Tag in das HTML-Dokument mit der URL einfügen. Dann, wenn die Antwort abgerufen wird die Callback-Funktion aufgerufen wird, um die Daten als Parameter übergeben.

Überprüfen Sie diese Blog-Post out für ein Beispiel

Dies ist eine Browser-Beschränkung. Alle JavaScript-Aufrufe müssen auf dem gleichen Server und Port des Hauses des Skripts. Dies wird etwas serverseitige benötigt um zu bekommen. I.E. haben das Verfahren bei localhost die Anfrage weiterleiten localhost:7076.

Es saugt, aber es ist notwendig, ... Im Grunde, was Sie vorhaben, Proxy tun zu müssen, ist Ihre AJAX-Request über einen lokalen Proxy - einige Server-Seite Skript / Seite / was auch immer auf der gleichen Domain auf Sie sind - erhalten der Anruf und leitet es an der anderen Ressource-Server-Seite, auf. Es könnte einige IFRAME Tricks, die Sie tun können, aber ich glaube nicht, dass sie sehr gut funktionieren ... könnte allerdings falsch, schon eine Weile her.

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