2014-09-28 158 views
0

不同於GET,AJAX的POST有差異的數據,這樣添加新的對象值

$.ajax({ 
type: "POST", 
data : {data: true}, 
url: '...' 

}); 

我如何添加新對象的數據?

我想到了做這樣

$.ajax({ 
    type: "POST", 
    data : ajaxVar, 
    url: '...' 

    }); 

ajaxVar = {data : true}; 
//add new object to ajaxVar 

但我堅持在這裏。我可以做{data:true,dataExtra:'like this'}但我有一個if。例如。

if(function()){ 
// add new object to ajaxVar 
} 

我不想增加額外的代碼,所以我想新的對象添加到現有ajaxVar。

回答

0

嘗試這種情況:

data : {var1: value1, var2: value2, var3: value3}, 
+0

不是很清楚,我不知道你想要什麼。 – worldask 2014-09-28 03:44:24

1

一個屬性需要之前AJAX請求被添加到該數據對象。您可以使用點或數組訪問添加一個新的屬性:

ajaxVar.newProp = newVal; 

ajaxVar["newProp"] = newVal; 

,並一起:

//declaration 
var ajaxVal = {}; 

// some conditional asignment work 
if(somethingIsTrue()){ 
    ajaxVar.newProp = newVal; 
} 

// ajax request 
$.ajax({ 
    type: "POST", 
    data : ajaxVar, 
    url: '...' 
}); 
+0

雖然代碼是讚賞的,它應該總是有一個附帶的解釋。這不需要太長時間,一條線很好,但它是必需的。我已經從適當隊列中到達,因爲這是自動標記的。保持高質量的答案將有助於防止這種情況發生。 – Veedrac 2014-09-28 05:11:07

0

JavaScript是一種同步語言意義的代碼將得到執行按照它的寫法順序。如果您希望在Ajax請求中發送數據,請將數據設置在Ajax代碼上方,並且一切都應該正常。

例子:

var data = {} 
if (isTrue()) { 
    data.property = true; 
} 

$.ajax({ 
    data: data, 
    ... 
});