我试图使用类似的参数调用ajax:
jQuery.ajax({
url: ajax_url,
type: "POST",
data: {
fields: {
id: id,
name: name
}
}
});
这似乎不起作用。有办法做我想做的事吗?
答案 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变量服务器端访问它。