Jquery - 如何格式化Ajax调用的数据

时间:2015-12-07 18:36:24

标签: php jquery ajax

在变量alert()上调用UserData时,我得到以下输出:

  

TestUser,mail @ example.com,2

根据UserData,变量alert(typeof UserData)的类型为Object。我正在尝试将其传递给jQuery Ajax调用,但在服务器端,我的POST数据为空。

如果我JSON.stringify(UserData),它会变成:

["TestUser","mail@example.com","2"]

但仍未获得任何POST数据。

这是Ajax调用:

request = $.ajax({
 url: "edit_user.php",
 type: "post",
 data: UserData,
 dataType: "json"
});

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

尝试创建一个看起来像这样的对象并将其传递给ajax调用{user:"TestUser",email:"mail@example.com",id:"2"}的data属性,或者Mark建议使用serialize()来创建此对象

答案 1 :(得分:0)

似乎您的UserData是数组,而不是对象,并且它没有正确的键(字段名称)。你没有提到,UserData是如何形成的,它来自何处。检查那里,确保它看起来像{user:"TestUser",email:"mail@example.com",id:"2"},而不是像["TestUser","mail@example.com","2"]那样进行字符串化。然后你可以简单地通过ajax数据字段传递它。

答案 2 :(得分:0)

我们无法看到UserData来自何处或如何形成,但是从您的对象中提取数据并尝试此

var dynamicData = [];
dynamicData.push({name: 'name', value: 'TestUser'});
dynamicData.push({name: 'email', value: 'mail@example.com'});

将值(TestUser,mail @ example.com)替换为UserData中提取的数据。也许

dynamicData.push({name: 'name', value: UserData[0]});