jQuery 无法将数组作为 JSON 内容类型发送
我正在使用如下所示的脚本:
$.ajax({
url: 'myservice',
type: 'POST',
contentType: 'application/json',
data: ["test"],
});
但是,这会导致对 myservice/?undefined=undefined
的请求,这可能表明 jQuery 假设数据是地图。有什么办法解决这个问题吗?有没有办法手动序列化数据(最好不求助于任何第三方库)?
我手动测试了我的服务,它可以正常使用 ["test"]
等数据。
编辑:有关请求方法的错误。
编辑(2):有趣,现在它会导致400 Bad request
。但是,如果我切换到 '["test"]'
(字符串),它就可以工作。我使用 jQuery 1.5.2。
I'm using a script that looks like this:
$.ajax({
url: 'myservice',
type: 'POST',
contentType: 'application/json',
data: ["test"],
});
However this causes a request to myservice/?undefined=undefined
which probably indicates that jQuery is assuming data to be a map. Is there any way around this? Is there a way to serialize data manually (preferably without resorting to any 3rd party libraries)?
I tested my service manually and it works correctly with the data like ["test"]
.
EDIT: A bug concerning request method.
EDIT(2): Interesting, now it causes 400 Bad request
. However if I switch to '["test"]'
(a string) it works. I use jQuery 1.5.2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将
方法:'POST'
更改为类型:'POST'
文档 | example
编辑:对于
data
,您应该使用查询字符串example=test& ;examplex=test2
或 javascript 对象{example: "test", examplex: "test2"}
change
method: 'POST'
totype: 'POST'
doc | example
Edit: for
data
you should use either query stringexample=test&examplex=test2
or javascript object{example: "test", examplex: "test2"}
请注意,您需要将 json 作为字符串传入。
如果你的 json 很复杂,你可以随时使用 Crockford 的 stringify。
Note that you need to pass in the json as a string.
If your json is complicated you can always use Crockford's stringify.
数据应该是一个像这样的对象:
另外,我认为你可以让你的 contentType 只是: 'json'
如果你需要序列化表单并发送值,jQuery 有一个函数:
参见 此链接
data should be an object like:
Also, I think you can make your contentType just: 'json'
If you need to serialize a form and send in the values, jQuery has a function for that:
see This Link