jQuery发布一个对象

时间:2011-10-18 18:36:51

标签: jquery object post

我有一个像这样定义的对象:

 data = {name: 'durk durk durk', site_id: 123456}

我有一个看起来像这样的功能:

function(data) { jQuery.post('www.example.com/ajax', { method: 'add', data: data } )

哪个会很棒,除非它的发布方式如下:

data[name]: durk durk durk
data[site_id]:  123456
method: add

当我想要的是这样发布时:

name:   durk durk durk
site_id:    123456
method: add

所以我对自己说,“自我,只需要拿出那些额外的数据就可以了,而你的同事会认为你的花哨对象帖子有多聪明”。

所以我将功能更改为:

function(data) { jQuery.post('www.example.com/ajax', { method: 'add', data } )

哪个失败了。

请帮助我,所以今晚我不必哭泣。

感谢。

2 个答案:

答案 0 :(得分:2)

用大锤子:

data.method = 'add';
function(data) { jQuery.post('www.example.com/ajax', data) …
delete data.method;

优雅的方式:

function(data) { jQuery.post('www.example.com/ajax', $.extend({}, data, {'method' : 'add'})) …

答案 1 :(得分:1)

使用$.extend组合两个对象。

data = {name: 'durk durk durk', site_id: 123456}
var postData = $.extend({}, data, { method: "add" });

function(postData) { jQuery.post('www.example.com/ajax', { postData } )