XDomainRequest Problem

8

Ich versuche einen asynchronen Aufruf an einen Service zu machen, der json mit XDomainRequest (IE8) zurückgibt. Das Problem ist, dass ich immer einen Fehler bekomme (das onerror-Ereignis wird ausgelöst, und der responseText ist immer null), ich benutze fiddler, um die Antwort des Dienstes zu überprüfen, und ich scheint richtig zu sein (ich kann das json-Objekt zurückgeben), dies geschieht nur in IE8, wenn XDomainRequest verwendet wird, die gleiche Funktionalität, die in JQuery implementiert wird, funktioniert einwandfrei.

Jeder Hinweis wäre willkommen. Danke!

P.S .: Dies ist mein JavaScript-Code:

%Vor%     
GiaNU 19.01.2011, 18:52
quelle

4 Antworten

8

Sind Sie sicher, dass der Dienst eine Access-Control-Allow-Origin -Kopfzeile sendet, die der anfragenden URL entspricht?

    
Dr.Molle 19.01.2011, 21:06
quelle
7

Ihr Problem könnte der gesendete Inhalt sein, weil XDomainRequest nur "text / plain" unterstützt.

Referenz: Ссылка

Prost,

André Pedroso

    
André Pedroso 09.02.2011 17:40
quelle
4

Ein Jahr alte Post, du noch da GiaNU ?! Sie rufen xdr.onsuccess auf, aber ich glaube nicht, dass diese Methode existiert. Das xdr.onload funktioniert und scheint der jQuery AJAX "success" -Funktion gleich zu sein.

Dieses X-Domain-Zeug ist ziemlich neu, aber es gibt ein sehr schönes Arbeitsmodell, das jetzt von MS erhältlich ist: AJAX - Einführung der domänenübergreifenden Anfrage (XDR)

Das xdr.ontimeout kann mir nichts anhaben, finde aber noch keinen Bedarf :) Ich habe die Dinge zuerst mit jQuery und jetzt mit ie9 Dankes zum MS-Post laufen.

Der XDR hat Probleme mit dem Timing für meine aktuelle Anwendung und wird nur mit einem Timeout behandelt:

%Vor%     
Randy Skretka 27.03.2012 23:33
quelle
1

Ein weiterer Fehler ist, dass wenn Sie den Dienst über Cassini ausführen, der Header "Access-Control-Allow-Origin" nicht zurückgegeben wird, da Cassini dies nicht erkennt. Wir hatten ein Szenario, in dem unsere Serviceanrufe auf einem Testserver arbeiteten, aber nicht lokal arbeiteten. Es stellte sich heraus, dass der Dienst in Cassini auf unserer lokalen Entwicklungsmaschine gehostet, aber auf dem Testserver auf IIS gehostet wurde.

Auch hier ist die Einstellung von web.config für jeden, der sie benötigt (Hinweis: Dies ermöglicht den Zugriff von jeder Domäne - "*"):

%Vor%     
Ciaran Bruen 11.05.2012 12:14
quelle

Tags und Links