我可以将什么样的参数传递给 XMLHttpRequest.send()



我有一个看起来像这样的请求

var xhr = new XMLHttpRequest();
[...]
xhr.send("param1=" + obj.param1 + "&param2=" + 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}});

最新更新