2010-02-13 8 views
18

, beforeSend() ve complete() işleyicileri $ .post ile kullanabilir veya bunun için $ .ajax kullanmanız gerekir mi?

cevap

33

2 seçeneğiniz var, $.ajax() veya $.ajaxSetup() kullanın. $ .ajax() kullanarak

:

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

Veya, gönderiniz $ .ajaxSetup() çalıştırın, ancak bu tüm ajax istekleri etkilemeden önce:

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

$.ajaxSetup kullanabilirsiniz, ancak global olarak geçerli olacaktır. Bu size uymuyorsa, $.ajax'u kullanmalısınız.

3

$ .ajaxSetup() 'ı kullanmadığınız sürece $ .ajax kullanmalısınız, ancak bu en akıllı seçim olmayabilir.

$ .ajax kullanmamanız için herhangi bir sebep var mı?

+0

daha sonra tüm $ .post kısayollarını $ .ajax olarak değiştirmem gerekiyor. ve birkaç değil =) – ajsie

9

Bu tam için çalışacak:

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

, size onlar dediği gibi $ .ajax kullanmak istemiyorsanız $ .post çağırmadan önce $ .ajaxSetup kullanmak gerekecektir fore.