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


Jquery - how to format data for Ajax call

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

测试用户,mail@example.com,2

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

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

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

仍然没有得到任何POST数据。

这是Ajax调用:

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

谢谢你的帮助。

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

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

我们看不到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]});