2011-09-02 29 views
3

我有以下工作Ajax調用 -有條件地將選項jQuery的Ajax調用

$.ajax({ 
     url: ajaxUrl, 
     type: sendHttpVerb, 
     dataType: 'json', 
     processData: false, 
     contentType: 'application/json; charset=utf-8', 
     complete: function() { 
      setTimeout($.unblockUI, 2000); 
     }, 
     success: function (response, status, xml) { 
      clearTimeout(delayLoadingMsg); 
      $.unblockUI(); 
      callbackFunction(response); 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      clearTimeout(delayLoadingMsg); 
      $.unblockUI(); 
      dcfForm.ajaxErrorDisplay(jqXHR, textStatus, errorThrown) 
     } 
    }); 

我的問題是,我想有條件時,我調用Ajax調用增加一個選項。例如,在發出Ajax請求之前添加data: sendRequest

我的問題我找不到完整複製整個函數的語法示例。

+0

我有一個回答你直到你說「沒有」重複整個功能。這將是我的解決方案,但我同意有條件地添加選項會更加清晰。我很抱歉,這是我個人知道如何去做的唯一方法。 –

+0

然而......對於你的例子,如果你想有選擇地發送一個參數,那麼你總是發送參數,但是在提出你的請求之前將該值設置爲「」。 –

回答

10

怎麼樣三元操作:

$.ajax({ 
    data: condition ? sendRequest : undefined, 
    ... the rest 
}); 

如果這不是你的口味,有些人似乎忘記了$就不會需要很長的組paramters的,但對象:

var ajax = {}; 
ajax.success = function (data) { ... }; 
ajax.type = 'GET'; 

if (myCondition) { 
    ajax.data = sendRequest; 
} 

$.ajax(ajax);