2011-05-13 16 views
5

Ho una barra degli strumenti che esiste in tutte le mie pagine Web che effettua regolarmente richieste a un file XML lato server.Rileva se e quando vengono effettuate chiamate jQuery AJAX

Alcune pagine Web inoltrano richieste allo stesso file XML, ma più frequentemente. Idealmente mi piacerebbe, dove possibile, combinarlo facilmente in una singola richiesta. Dove la barra degli strumenti utilizza la stessa richiesta fatta dalla pagina (poiché la velocità di aggiornamento della pagina è maggiore di quella della barra degli strumenti)

C'è un modo per dire se sono state fatte chiamate jQuery AJAX a determinate risorse e, se quindi, essere informato sul successo?

Aggiornamento:

in base alla risposta di Darin Dimitrov Ho provato quanto segue:

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

Questo non spara, presumo perché il gestore successo viene sovrascritto quando faccio la mia altra Chiamate AJAX.

risposta

4

È possibile utilizzare lo $.ajaxSetup() per iscriversi agli eventi comuni.

+0

Ehi, grazie per la risposta, sfortunatamente questo sembra funzionare solo per le opzioni di default, cioè se ho impostato il seguente (vedi aggiornamento sulla Q originale) – Chris

+0

@Chris, prova ad abbonarti per il callback 'completo'. –

+0

Come faccio a sapere quale URL è stato chiamato? – Chris

1

Iscriviti a tutti gli eventi Ajax a livello di documento;

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

Nella tua AJAX aggiungere richiamata risposta, qualcosa di simile:

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

e sulla vostra pagina PHP in cui si elaborano AJAX richiesta aggiungere qualche dichiarazione di eco:

echo "POSTed OK!"; 

Se pubblichi è un successo riceverai una conferma di avviso. È inoltre possibile ottenere una conferma se failes ma modifica leggermente il codice:

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

Buona fortuna!

Problemi correlati