2010-06-18 29 views
5

Hola Tengo un problema extraño con una llamada AJAX en mi sitio. Hago una simple llamada AJAX a un script en mi sitio. Pero la llamada AJAX falla con readyState = 4 y status = 0. No hay un problema de dominio cruzado porque el script que quiero llamar está en mi servidor.XHR readyState = 4 pero Status = 0 en el navegador Google Chrome

$.ajax({ 
        type:"GET", 
        url: 'http://mydomain.com/test.php', 
        success : function(response){ 
         console.log(response); 
        }, 
        error : function(XHR){ 
         console.log(arguments); 
        } 
}); 

¡He buscado en Google muchos sitios pero parece que no hay solución para eso!

+0

es su sitio en www. o dominio desnudo? – Kinlan

+0

=> Si se enfrenta a este problema solo haga una cosa primero borre la cookie de sesión de su navegador y luego agregue ** "Math.rendom()" ** en su url de ajax ** Por ejemplo, "sample.php? R = "+ Math.random(); ** => ¿Es la url escrita correcta? Si lo escribe como una URL absoluta ** (como http: //www.etc) ** no funcionará. ¿Es un camino relativo allí? – SKULL

+0

¿Encontró una respuesta? Tengo el mismo problema y el mío no es un problema de dominio. –

Respuesta

3

Esto sucede cuando la URL de la solicitud AJAX tiene un dominio diferente al de la página en la que se está ejecutando la secuencia de comandos. Por ejemplo, www.mydomain.com y mydomain.com son diferentes.

Para solucionarlo, cambie

url: 'http://mydomain.com/test.php', 

con

url: 'http://' + document.domain + '/test.php', 

me encontré con esta pregunta en la búsqueda de la respuesta a mí mismo. Obtuve la solución de here.

+0

también cuando el protocolo es diferente, es decir, file: // y http: // localhost ... –

+1

Recibo el mismo error en una página muy simple que funciona el 99% del tiempo en la producción. Pero de vez en cuando obtengo este error. El código tiene exactamente el mismo dominio y protocolo, es fácil de decir porque el javascript es corto y la url está codificada. –

Cuestiones relacionadas