Mi código es:¿Cómo debo depurar una solicitud jQuery Ajax?
var test = "it isn't working";
var response = $.ajax({
type: 'GET',
url: 'jquerydemo.php', //This is in the same site as the page calling this request, so it's not a same-domain error.
success: function(){
test = "it's working";
},
error: function(){
alert("Error detected");
}
}).responseText;
alert(test);
He probado el código de estado y salió a un 200 y la función de error que nunca se apaga, pero tampoco lo hace la función de éxito. Como dije en mi comentario, no es un error de política de origen. Simplemente permanece diciendo "no está funcionando". ¿Que está pasando aqui?
Usted también tiene la opción de añadir 'asíncrono: true' a la configuración que pase en su' ajax' llamada, pero hay que tener en cuenta que esto va a parar todo ese hilo de ejecución en tu script hasta que la solicitud haya regresado. – dfreeman
@SchiefGelaufen - Supongo que querías decir 'async: false'. Convertir la llamada ajax en una llamada síncrona es una opción, pero como bloquea toda la página web durante la llamada ajax, rara vez es la mejor opción de diseño. Es más complicado codificar con 'async: true', pero ofrece una mejor experiencia de usuario. – jfriend00
Vaya, tonto error de mi parte. Sí, 'async: falso'. No es necesariamente cierto que realizar una solicitud ajax sincrónica bloquee toda la página (al menos, hay una serie de circunstancias bajo las cuales no), pero ciertamente se considera una mejor práctica poner cualquier lógica que dependa de la respuesta en su éxito. llamar de vuelta. – dfreeman