El time de espera no funciona en la request posterior ajax

No puedo hacer una function de callback ajax después de 3 segundos. Intenté con time de espera, ¡pero no cambiará a callback de error después del time especificado! No puedo recibir la alerta Got timeout .

Cuando mencioné preguntas similares en este sitio con problemas similares, no me ayudó. Todos usan el tipo ajax GET. Estoy usando la biblioteca jquery 1.10.1.

script:

 $.ajax({ type: 'POST', timeout: 3000, url : "http://mydomain/Services.asmx/Best_Scores", dataType: "text", async:false, crossDomain:true, data: "strJsonRequest="+sconetworkingata, success: function (data) { // Success code ... }, error: function (data, textStatus, errorThrown) { if(textStatus == "timeout") { alert("Got timeout"); } } }); 

Alguna solución ?

Solución:

Cambiar async : false a async: true

Motivo:

Una llamada AJAX síncrona bloquea hasta que la request haya finalizado. La implementación de un time de espera no es posible por razones técnicas, porque la llamada AJAX tendría que ejecutarse más tarde.

Si se ejecuta una llamada AJAX más tarde, la function de alguna manera tiene que implementar una característica de locking, para evitar que el código se siga ejecutando después de la llamada AJAX, y ejecutarlo de nuevo después de un time de espera – no es posible.