我有一个看起来像这样的请求
var xhr = new XMLHttpRequest();
[...]
xhr.send("param1=" + obj.param1 + "¶m2=" + val);
我真的更喜欢写这样的东西
xhr.send( {"param1": obj.param1, "param2": val} );
(A) 有可能这样做吗?
(B) 我在哪里可以找到可以回答这个问题的规范?
有可能做到吗?
目前没有,但草案中包含这样的事情:http://www.w3.org/TR/XMLHttpRequest/#the-send-method。XmlHttpRequest 应该能够发送 ArrayBuffers、Blob、Documents、字符串和 FormData 对象(html5rocks 中的示例)。
但是,不支持发送对象 - 它们需要可序列化。您可以将它们作为 JSON 字符串发送,或使用众多库函数之一来生成 URL 参数字符串(如 jQuery.param()
)。
我在哪里可以找到可以回答这个问题的规范?
我已经链接了上面的规范,尽管对于浏览器支持,您需要查看兼容性表或浏览器的文档(例如,MDN 的 FF
用jQuery轻松地做这种事情: jQuery.ajax({ url: http://yoururl.com, data: {"param1": obj.param1, "param2": val}});