2010-02-13 168 views
18

可以用$ .post使用beforeSend()和complete()處理程序,還是必須使用$ .ajax?

回答

33

您有2個選擇,請使用$.ajax()$.ajaxSetup()

使用$。阿賈克斯():

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

或者,在你運行後$ .ajaxSetup(),但是這會影響所有的Ajax請求:

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

您可以使用$.ajaxSetup,但它將適用於全球。如果這不適合你,你應該使用$.ajax

3

得使用$ .ajax,除非您使用$ .ajaxSetup(),但這可能不是最明智的選擇。

任何你不應該使用$ .ajax的原因?

+0

然後我必須將所有$ .post快捷方式更改爲$ .ajax。他們不是很少=) – ajsie 2010-02-14 14:51:04

9

這將爲完成工作:

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

對於beforeSend,你必須調用$。員額之前,使用$ .ajaxSetup,如果你不希望,因爲他們說是使用$阿賈克斯前面。