我正在使用如下所示的脚本:
$.ajax({
url: 'myservice',
type: 'POST',
contentType: 'application/json',
data: ["test"],
});
然而,这会导致对myservice/?undefined=undefined
的请求,这可能表明jQuery假设数据是地图。有没有办法解决?有没有办法手动序列化数据(最好不要求助于任何第三方库)?
我手动测试了我的服务,它可以正常使用["test"]
等数据。
编辑:有关请求方法的错误。
编辑(2):有趣,现在导致400 Bad request
。但是,如果我切换到'["test"]'
(一个字符串),它就可以工作。我使用jQuery 1.5.2。
答案 0 :(得分:4)
将method: 'POST'
更改为type: 'POST'
修改:对于data
,您应该使用查询字符串example=test&examplex=test2
或javascript对象{example: "test", examplex: "test2"}
答案 1 :(得分:1)
$.ajax({
url: 'myservice',
method: 'POST',
contentType: 'application/json',
data: '["test"]',
});
请注意,您需要将json作为字符串传递。
如果你的json很复杂,你可以随时使用Crockford的stringify。
答案 2 :(得分:0)
数据应该是一个像这样的对象:
{var1: 'test', var2: 'test'}
此外,我认为您可以将您的contentType设为:'json'
如果您需要序列化表单并发送值,jQuery有一个函数:
$("formId").serialize();
请参阅This Link