2010-02-13 4 views
18

könnte man die Handler beforeSend() und complete() mit $ .post benutzen oder müssen Sie $ .ajax dafür benutzen?

Antwort

33

Sie haben 2 Optionen, verwenden Sie $.ajax() oder $.ajaxSetup().

Mit $ Schnipsel():

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

Oder vor Ihrem Beitrag laufen $ .ajaxSetup(), aber dies wirkt sich auf alle Ajax-Anfragen:

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

Sie könnten $.ajaxSetup verwenden, aber es wird global gelten. Wenn dies nicht zu Ihnen passt, sollten Sie $.ajax verwenden.

3

Wir müssen $ .ajax verwenden, außer Sie verwenden $ .ajaxSetup(), aber das ist vielleicht nicht die beste Wahl.

Warum sollten Sie $ .ajax nicht verwenden?

+0

dann muss ich alle meine $ .post Verknüpfungen zu $ ​​.ajax ändern. und sie sind nicht wenige =) – ajsie

9

Dies wird für die komplette Arbeit:

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

Für beforeSend, werden Sie .post $ $ .ajaxSetup vor dem Aufruf verwenden müssen, wenn Sie .ajax $ nicht verwenden wollen, wie sie gesagt werden, Vordergrund.