2012-08-22 9 views
11

Recibo el siguiente error.Error no detectado: INVALID_STATE_ERR: DOM Exception 11

Uncaught Error: INVALID_STATE_ERR: DOM Exception 11

Aquí es el código en la que me estoy haciendo tiempo de funcionamiento de error.

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

he intentado con false en el tercer parámetro de xhttp.open.
¿Alguien puede decirme qué está causando esto?

+0

¿Usted está enviando su solicitud al mismo servidor que sirvió a la página? ¡Recuerda CORS! – tkone

+0

Mi solicitud va en dos servidores. Uno es nuestro servidor (capa intermedia) y el segundo es el servidor de Expedia (una API de reserva de hotel). Nuestra capa intermedia envía más lejos a Expedia y nos responde. – Anildhara

Respuesta

22

El error proviene de la orden de ejecución:

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

primer lugar, debe abrir la conexión y luego configurar el encabezado de la solicitud de lo contrario obtendrá el error.

+2

Hola, Anónimo Su orden del código anterior es perfecto. Ahora mi código está funcionando bien. Muchas gracias. – Anildhara

+0

Esta es la respuesta, @Anildhara ¡márcalo! – candlejack

+0

Hombre, no estoy seguro de por qué, pero en Chrome, no importaba el orden en el que había establecido los encabezados. Cuando se trataba de pruebas de navegador sin cabeza con phantomjs, estalló. ¡Gracias un montón! Literalmente estaba golpeando mi cabeza contra mi escritorio todo el día. – jemiloii

1

XMLHttpRequest::Status no está disponible hasta que XMLHttpRequest::readyState ha cambiado a 4 es decir. se ha adquirido una respuesta adecuada del servidor y ahora se ha rellenado en la variable Status.

Por lo tanto, el acceso temprano al XMLHttpRequest :: Status puede dar como resultado este error.

Solución: primero verificar readyState y sólo en caso de éxito — acceso 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! 
    } 
} 
Cuestiones relacionadas