数据数组中的jquery ajax数组

时间:2013-07-30 20:43:09

标签: jquery ajax arrays

我试图使用类似的参数调用ajax:

jQuery.ajax({
    url: ajax_url,
    type: "POST",
    data: {
        fields: {
            id: id,
            name: name
        }
    }
});

这似乎不起作用。有办法做我想做的事吗?

2 个答案:

答案 0 :(得分:0)

假设您的服务器期待JSON,您需要对其进行字符串化:

jQuery.ajax({
    url: ajax_url,
    type: "POST",
    data: JSON.stringify({
        fields: {
            id: id,
            name: name
        }
    }),
    contentType: "application/json; charset=utf-8"
});

如果您需要在旧浏览器上使用此功能,请务必添加json2.js

当您尝试发布而没有对javascript对象进行字符串化并标记contentType时,它会将请求写为URL编码参数,从而在复杂对象类型上获得所有时髦。看一下浏览器开发工具或Fiddler中的请求正文,看看我的意思。

答案 1 :(得分:0)

您可以传递数组,但必须采用特定格式:

[
    {
        name: "thefieldname",
        value: "thefieldvalue"
    },
    {
        name: "anotherfieldname",
        value: "anotherfieldvalue"
    }
]

稍后将在发送到服务器时将其转换为查询字符串,例如"thefieldname=thefieldvalue"。如果您希望发送超过名称和值的内容,则需要将JSON发送到服务器。

data: { json: JSON.stringify(myobjectorarray) }

并从json post变量服务器端访问它。