Por alguna razón, mientras uso AJAX (con mi dashcodeaplicación desarrollada) el navegador simplemente deja de cargar y devuelve códigos de estado de 0
. ¿Por qué pasó esto?
ajax
http-status-codes
Tarnfeld
fuente
fuente
<form onsubmit="return false;">
e.preventDefault();
En mi experiencia, verá un estado de 0 cuando:
fuente
El mismo problema aquí cuando se usa
<button onclick="">submit</button>
. Luego resuelto usando<input type="button" onclick="">
fuente
El código de estado 0 significa que no se puede acceder a la URL solicitada. Al cambiar http: // something / something a https: // something / something funcionó para mí. IE arroja un error que dice "permiso denegado" cuando el código de estado es 0, otros navegadores no.
fuente
Es importante tener en cuenta que las llamadas ajax pueden fallar incluso dentro de una sesión definida por una cookie con un determinado dominio con el prefijo www. Cuando llama a su script php, por ejemplo, sin www. prefijo en la url, la llamada fallará y viceversa, también.
fuente
Este artículo me ayudó. Estaba enviando el formulario a través de AJAX y olvidé usarlo
return false
(después de mi solicitud de ajax), lo que condujo al envío del formulario clásico, pero extrañamente no se completó.fuente
<form onsubmit="return false;">
Hizo el truco.Debido a que esto aparece cuando googleas el estado 0 de ajax, quería dejar un consejo que solo me llevó horas de tiempo perdido ... Estaba usando ajax para llamar a un servicio PHP que resultó ser el REST_Controller de Phil para Codeigniter (no estoy seguro de si esto tiene nada que ver con eso o no) y seguí obteniendo el estado 0, listo estado 0 y me estaba volviendo loco. Lo estaba depurando y noté cuándo haría eco y regresaría en lugar de salir del mensaje que obtendría un éxito. Finalmente apagué la depuración e intenté y funcionó. Parece que el depurador xDebug con PHP estaba modificando de alguna manera la respuesta. Si está utilizando un depurador PHP, intente desactivarlo para ver si eso ayuda.
fuente
Encontré otro caso en el que jquery le da el código de estado 0: si por alguna razón XMLHttpRequest no está definido, obtendrá este error.
Obviamente, esto normalmente no sucederá en la web, pero un error en una versión nocturna de Firefox hizo que esto apareciera en un complemento que estaba escribiendo. :)
fuente
jQuery.ajax()
objeto XHR. La solicitud ni siquiera se creó en la llamada AJAX, todavía obteniendo f.open no es una función y un código de estado 0. Causado por: Estaba devolviendo un$.ajaxSettings.xhr
objeto$.ajaxSetup({xhr})
, pero ennew window.XMLHttpRequest();
cambio resolví el problemaTuve el mismo problema, y estaba relacionado con el bloqueo XSS (cross site scripting) por parte del navegador. Logré hacerlo funcionar utilizando un servidor.
Echa un vistazo a: http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/282972/why-am-i-getting-xmlhttprequest.status0
fuente
El envío de formularios "accidentales" fue exactamente el problema que estaba teniendo. Acabo de eliminar las etiquetas FORM por completo y eso parece solucionar el problema. ¡Gracias a todos!
fuente
Tuvimos un problema similar, el código de estado 0 en la llamada jquery ajax, y nos tomó todo el día diagnosticarlo. Como nadie había mencionado esta razón todavía, pensé en compartir.
En nuestro caso, el problema fue el bloqueo del servidor HTTP. Algún error en PHP estaba apagando Apache, por lo que en el extremo del cliente se veía así:
donde test.php contenía el código de bloqueo. No se devolvieron datos del servidor (ni siquiera los encabezados) => la llamada ajax se canceló con el estado 0.
fuente
En mi caso, fue causado por ejecutar mi servidor django
http://127.0.0.1:8000/
pero enviando la llamada ajax ahttp://localhost:8000/
. Aunque esperaría que se asignaran a la misma dirección, no se aseguran de que no envíe sus solicitudes a localhost.fuente
En nuestro caso, el enlace de la página cambió de https a http . Aunque los usuarios iniciaron sesión, se les impidió cargar con AJAX.
fuente
En mi caso, establecer la configuración
url: ''
de ajax daría como resultado un código de estado 0 en ie8 .. Parece que es decir, simplemente no tolera dicha configuración.fuente
Para mí, el problema fue causado por la empresa de alojamiento (Godaddy) que trataba las operaciones POST que tenían datos de respuesta sustanciales (algo más que decenas de kilobytes) como algún tipo de amenaza para la seguridad. Si ocurrieron más de 6 de estas en un minuto, el host se negó a ejecutar el código PHP que respondió a la solicitud POST durante el siguiente minuto. No estoy completamente seguro de lo que hizo el host en su lugar, pero vi, con tcpdump, un paquete de restablecimiento de TCP que viene como respuesta a una solicitud POST del navegador. Esto provocó que el código de estado http devuelto en un objeto jqXHR fuera 0.
Cambiar las operaciones de POST a GET solucionó el problema. No está claro por qué Godaddy impone este límite, pero cambiar el código fue más fácil que cambiar el host.
fuente
Creo que sé qué puede causar este error.
En google chrome hay una función incorporada para evitar ataques ddos para las extensiones de google chrome.
Cuando las solicitudes ajax devuelven continuamente más de 500 errores de estado, comienza a limitar las solicitudes.
Por lo tanto, es posible recibir el estado 0 en las siguientes solicitudes.
fuente
En un intento de ganar el premio por la razón más tonta del problema descrito.
Olvidando llamar
Sí, todavía recibía devoluciones de estado de cero de la llamada 'abierta'.
fuente
En mi caso, estaba obteniendo esto, pero solo en Safari Mobile. El problema es que estaba usando la URL completa ( http://example.com/whatever.php ) en lugar de la relativa (whatever.php). Sin embargo, esto no tiene ningún sentido, no puede ser un problema de XSS porque mi sitio está alojado en http://example.com . Supongo que Safari mira la parte http y la marca automáticamente como una solicitud insegura sin inspeccionar el resto de la URL.
fuente
En mi resolución de problemas, encontré que AJAX xmlhttpRequest.status == 0 podría significar que la llamada del cliente NO había llegado al servidor todavía, pero falló debido a un problema en el lado del cliente. Si la respuesta fue del servidor, entonces el estado debe ser el código de respuesta HTTP 1xx / 2xx / 3xx / 4xx / 5xx HTTP. En adelante, la resolución de problemas se centrará en el problema del CLIENTE, y podría ser una conexión de red de Internet inactiva o una de las descritas anteriormente por @Langdon.
fuente
Observe la consola del navegador mientras realiza la solicitud, si ve "La misma política de origen no permite leer el recurso remoto en http ajax ..... razón: falta el encabezado cors 'access-control-allow-origin'", entonces necesita agregue "Access-Control-Allow-Origin" en el encabezado de respuesta. exa: en java puede configurar esto como response.setHeader ("Access-Control-Allow-Origin", "*") donde la respuesta es HttpServletResponse.
fuente