2010-02-13 9 views
18

si potrebbe usare i gestori beforeSend() e complete() con $ .post o si deve usare $ .ajax per questo?

risposta

33

Hai 2 opzioni, usa $.ajax() o $.ajaxSetup().

Utilizzando $ .ajax():

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success 
    dataType: dataType 
}); 

Oppure, prima di eseguire il tuo post $ .ajaxSetup(), ma questo riguarda tutte le richieste Ajax:

$.ajaxSetup({ 
    beforeSend: myFunc, 
    complete: myCompleteFunc 
}); 
3

È possibile utilizzare $.ajaxSetup ma si applica a livello globale. Se questo non ti va, devi usare $.ajax.

3

Devi usare $ .ajax, a meno che non usi $ .ajaxSetup(), ma potrebbe non essere la scelta più saggia.

Qualsiasi motivo per cui non si dovrebbe usare $ .ajax?

+0

quindi devo modificare tutte le mie scorciatoie $ .post in $ .ajax. e non sono pochi =) – ajsie

9

Questo funziona per una completa:

var jqxhr = $.post("example.php", function() { 
     alert("success"); 
jqxhr.complete(function(){ alert("second complete"); }); 

per beforeSend, dovrete usare $ .ajaxSetup prima di chiamare $ .post se non si desidera utilizzare $ .ajax come hanno detto essere prua, testa.