2013-11-29 75 views
0

我試圖找到一個很好的方法來實現這一點。如果你還有其他更好的建議,我全都聽。自定義jQuery AJAX方法

基本上,我的網站有一堆ajax調用。但是,我覺得應該以這種方式調用它們,所以我不必重複代碼。特別是beforeSend方法。我不想每次都在下面輸入檢查方法。我如何解決這個問題,所以我不必每次都輸入檢查方法?他們可以使用不同的方法添加到下面提到的方法中,但是下面的2總是必須被調用。我甚至可以以不同的方式實例化ajax調用。

目前,我有這個遍佈不同口味的地方:

var Params = {}; 
    Params.type = "POST"; 
    Params.url = '/this/is/my/url'; 
    Params.cache = false; 
    Params.timeout = 180000; 
    Params.processData = true; 
    Params.data = { 
     action: "ajax", 
     method: "coolMethod", 
    }; 

    Params.dataType = "json"; 
    Params.beforeSend = function() { 
     checkIfUserHasLoggedOut(); 
     checkSomeOtherThings(); 
    }; 
    Params.error = function (xhr, status, error) { 

    }; 
    Params.success = function (data) { 

    }; 

回答

2

您可以使用$.ajaxSetup()設置的默認參數爲Ajax請求

jQuery.ajaxSetup({ 
    cache: false, 
    timeout: 180000, 
    processData: true, 
    dataType: 'json', 
    beforeSend: function() { 
     checkIfUserHasLoggedOut(); 
     checkSomeOtherThings(); 
    } 
}) 

然後使用$.ajax()與特定參數,在所有通話中都會發生變化

$.ajax({ 
    type: 'POST', 
    url: '', 
    data: {...}, 
    success: ...., 
    failure: .... 
}) 
+0

真棒........ – KingKongFrog

+0

如果我想添加到beforeSend但不覆蓋它呢? – KingKongFrog

+0

@KingKongFrog yes ....你不應該覆蓋它 –