2012-08-22 8 views
11

Ich bekomme den folgenden Fehler.Uncaught Fehler: INVALID_STATE_ERR: DOM Exception 11

Uncaught Error: INVALID_STATE_ERR: DOM Exception 11

Hier ist der Code, wo ich Fehler RUN TIME bekomme.

xhttp.setRequestHeader("Content-type","application/xhtml+xml");<br> 
xhttp.open("POST",xmlFile,true);<br> 
xhttp.send(postData); 

Ich habe versucht, mit false im dritten Parameter von xhttp.open.
Kann mir jemand sagen, was das verursacht?

+0

Sind Sie Ihre Anfrage an den gleichen Server zu senden, der die Seite gedient? Denken Sie daran, CORS! – tkone

+0

Meine Anfrage läuft auf zwei Servern. Einer ist unser Server (mittlere Schicht) und der zweite ist Expedia Server (eine Hotelbuchungs-API). Unsere mittlere Schicht sendet weiter zu Expedia und erwidert Antwort auf uns. – Anildhara

Antwort

22

Der Fehler kommt von der Reihenfolge der Ausführung:

xhttp.open("POST",xmlFile,true); 
xhttp.setRequestHeader("Content-type","application/xhtml+xml"); 
xhttp.send(postData); 

Sie müssen zuerst die Verbindung öffnen und dann die Request-Header sonst werden Sie den Fehler erhalten.

+2

Hallo, Anonymous Ihre Bestellung von oben genannten Code ist perfekt. Jetzt funktioniert mein Code gut. Danke vielmals. – Anildhara

+0

Dies ist die Antwort, @Anildhara markieren Sie es! – candlejack

+0

Mann, ich bin mir nicht sicher warum, aber in Chrom war es egal, in welcher Reihenfolge ich die Header gesetzt hatte. Wenn es um kopflose Browser-Tests mit Phantomjs ging, explodierte es! Vielen Dank! Ich schlug den ganzen Tag mit meinem Kopf gegen meinen Schreibtisch. – jemiloii

1

Die XMLHttpRequest::Status ist nicht verfügbar, bis die XMLHttpRequest::readyState in 4 geändert wurde, dh. Eine richtige Antwort wurde vom Server erhalten und wurde nun in der Status Variable aufgefüllt.

Der frühe Zugriff auf XMLHttpRequest :: Status kann zu diesem Fehler führen.

Lösung: erste readyState überprüfen und nur bei Erfolg — Zugang Status

if (xmlhttp.readyState==4) 
{ 
    switch (xmlhttp.status) 
    { 
    case 200: // Do the Do 
     break; 
    case 404: // Error: 404 - Resource not found! 
     break; 
    default: // Error: Unknown! 
    } 
}