2014-09-28 71 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, 
    ... 
});