¿Cómo depurar una solicitud de ajax fallida en google chrome?
debugging google-chrome (2)
Tengo una aplicación web que falla en las solicitudes de ajax con google chrome (funciona con todos los demás navegadores web en los que se probó). Después de la depuración, encontré que el error está causado por response.responseText que está indefinido. El objeto xhr se ve así:
argument: undefined
isAbort: false
isTimeout: undefined
status: 0
statusText: "communication failure"
tId: 3
En el depurador, en la pestaña "red", aparece "(error)", sin embargo, todos los encabezados están allí e incluso puedo copiar en el portapapeles el cuerpo de la respuesta (que es un JSON válido).
Mi pregunta es: ¿cómo puedo solucionar este problema? ¿Dónde encontrar información adicional, qué causa que esta solicitud falle?
Finalmente encontré la solución a mi problema: AdBlocks, cuando bloquea una solicitud ajax, simplemente dice "falla de comunicación".
Lo primero que volvería a comprobar es que los datos provenientes de la respuesta son JSON válidos. Simplemente páselo a través de un validador JSON como este JSONLint en línea: http://jsonlint.com/
Supongo que está utilizando algo como jQuery para realizar sus solicitudes AJAX. Si es así, asegúrese de que está utilizando la versión de desarrollo de esa biblioteca. Ahora que está utilizando la versión de desarrollo (sin comprimir) de la secuencia de comandos, encuentre la función particular que está usando (por ejemplo, $ .ajax) y luego, dentro del inspector de Chrome, inserte un punto de interrupción en el código donde la respuesta AJAX es la primera manejado (por ejemplo, https://github.com/jquery/jquery/blob/master/src/ajax.js#L579 ). Luego continúe con el paso del código, inspeccionando varios valores de retorno para ver exactamente qué está mal.
Si no está usando algo como jQuery para hacer llamadas AJAX, entonces le recomiendo usar un marco para evitar posibles problemas de compatibilidad entre navegadores como los que podría estar experimentando ahora.