XMLHTTPRequest.status gibt 0 zurück und responseText ist in FireFox 3.5 leer

8

Ich versuche, eine Drittanbieter-URL zu treffen, um die XML-Antwort zu erhalten und das Reposne auf meiner Webseite anzuzeigen. Ich bekomme eine korrekte Antwort mit Status als 200 und readystate als 4 in IE und Safari-Browsern. Aber in FF3.5 und Crome bekomme ich XMLHTTPRequest status als 0 und reponseText kommt als leere Zeichenfolge. Ich habe viele Optionen ausprobiert, um den normalen XMLHTTPRequest Ajax-Code zu schreiben, sowie die Prototyp-Version js-Datei für diese Ajax-Anfrage zu verwenden, aber der Status und der Antworttext in FF 3.5 bleiben gleich wie 0 und eine leere Zeichenkette.

Jede Hilfe, wie dieses Problem gelöst werden kann oder was genau dieses Problem verursacht, wird sehr geschätzt. Ich hatte auch versucht, meinen Code lokal auszuführen sowie auf dem Webserver zu implementieren, aber die Antwort in FF ist gleich.

Unten ist mein Codeausschnitt

%Vor%     
somen 30.12.2009, 15:56
quelle

1 Antwort

16

Es sieht so aus, als ob Sie die Richtlinie für den gleichen Ursprung getroffen haben. Sie müssen einen relativen Pfad verwenden, sonst geben die meisten Browser einfach eine leere responseText zurück.

Der folgende Stack Overflow-Post hängt wahrscheinlich auch mit Ihrem Problem zusammen:

Als eine mögliche Problemumgehung könnten Sie einen sehr einfachen Reverseproxy einrichten (mit mod_proxy , wenn Sie Apache verwenden. Dies würde Ihnen erlauben, relative Pfade in Ihrer AJAX-Anfrage zu verwenden, während der HTTP-Server als Proxy für jeden "entfernten" Standort agieren würde.

Die grundlegende Konfigurationsanweisung zum Einrichten eines Reverse-Proxy in mod_proxy ist der ProxyPass. Sie würden es normalerweise wie folgt verwenden:

%Vor%

In diesem Fall würde der Browser /web-services/service.xml anfordern, aber der Server würde dies übernehmen, indem er als Proxy für http://third-party.com/web-services/service.xml agiert.

    
Daniel Vassallo 30.12.2009 16:01
quelle