2011-05-13 15 views
5

Tengo una barra de herramientas que existe en todas mis páginas web que realiza solicitudes a un archivo XML del lado del servidor con regularidad.Detectar si y cuándo se realizan llamadas jQuery AJAX

Algunas de las páginas web también realizan solicitudes al mismo archivo XML, pero con mayor frecuencia. Idealmente, me gustaría, cuando sea posible, combinar esto fácilmente en una única solicitud. Donde la barra de herramientas utiliza la misma solicitud que la página (cuando la frecuencia de actualización de la página es mayor que la de la barra de herramientas)

¿Hay alguna forma de saber si se han realizado llamadas jQuery AJAX a ciertos recursos y, si entonces, ser notificado sobre el éxito?

Actualización:

Sobre la base de la respuesta de Darin Dimitrov He intentado lo siguiente:

$.ajaxSetup({ 
    success: function(){ console.log("woop"); } 
}); 

Esto nunca se dispara, supongo que debido a que el controlador de éxito se sobrescribe cuando hago mi otro Llamadas AJAX.

Respuesta

4

Puede utilizar el $.ajaxSetup() para suscribirse a los eventos comunes.

+0

Hola, gracias por la respuesta, desafortunadamente esto parece funcionar solo para las opciones predeterminadas, es decir, si configuro lo siguiente (vea la actualización en la Q original) – Chris

+0

@Chris, intente suscribirse para la devolución de llamada 'completa'. –

+0

¿Cómo puedo saber a qué URL se llamó? – Chris

1

Suscríbase a todos los eventos de Ajax a nivel de documento;

$(document).bind("ajaxSend", function(){ 
    alert('ajax fired'); 
}); 
0

En su AJAX añadir devolución de llamada de respuesta, algo parecido a esto:

$.ajax({ 
    type: "POST", 
    url: "mypage.php", 
    data: "name=John&location=Boston", 
success: function(data){ 
    alert(data); 
    } 
}); 

y en su página php, donde se procesa AJAX solicitud de añadir un poco de orden echo:

echo "POSTed OK!"; 

Si publicas es un éxito obtendrás una confirmación de alerta. También puede obtener una confirmación si failes pero modificando ligeramente el código:

success: function(result) { 
    if (result==1) { 
     alert('Success'); 
    } else { 
     alert('Failed'); 
    } 
} 

Buena suerte!

Cuestiones relacionadas