2012-12-28 9 views
5

C'è un modo per intercettare una richiesta Ajax fatta tramite jquery, per inserire variabili addizionali in esso?Intercettare una richiesta Jquery AJAX per inserire variabili aggiuntive?

So che .ajaxStart() consente di registrare un callback che attiva un evento ogni volta che inizia una richiesta Ajax, ma quello che sto cercando è un modo per annullare quella richiesta Ajax se soddisfa determinati criteri (ad esempio url), inserire alcuni più variabili nel suo contenuto, quindi inviarlo.

Questo è per un plug-in per un software di terze parti il ​​cui proprio codice non può essere modificato direttamente.

Modifica: Sembra che .ajaxSetup() consente di impostare alcune variabili globali relative a ajaxRequests. Se avessi registrato una funzione beforeSend, tale funzione sarebbe stata in grado di annullare la richiesta di crearne una diversa per soddisfare determinati criteri?

+0

hai provato a restituire 'false'? Questo funziona per fermare un sacco di eventi, anche se non so in modo specifico se funziona per questo. o 'event.preventDefault()'? – Colleen

+0

Interessante, proverò event.preventDefault .. –

+0

possibile duplicato di [Come interrompere una richiesta Ajax] (http://stackoverflow.com/questions/9374305/how-to-stop-ajax-request) –

risposta

6

capito, questo è stato il codice che ho usato:

jQuery(document).ready(function() 
{  
    var func = function(e, data) 
    {  
     //data.data is a string with &seperated values, e.g a=b&c=d&.. . 
     //Append additional variables to it and they'll be submitted with the request:  
     data.data += "&id=3&d=f&z=y"; 
     return true; 
    }; 
    jQuery.ajaxSetup({beforeSend: func}); 
    jQuery.post('example.php', {a : 'b'}, 'json');  
}); 

per annullare la richiesta, di ritorno falso dal func sembrava funzionare.

Problemi correlati