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

时间:2012-07-06 00:09:33

标签: javascript ajax

我的请求看起来像这样

var xhr = new XMLHttpRequest();
[...]
xhr.send("param1=" + obj.param1 + "&param2=" + val);

我更喜欢写类似

的东西
xhr.send( {"param1": obj.param1, "param2": val} );

(A)可以这样做吗?

(B)我在哪里可以找到能够回答这个问题的规范?

2 个答案:

答案 0 :(得分:2)

  

有可能吗?

目前不是,但草案中包含了这些内容:http://www.w3.org/TR/XMLHttpRequest/#the-send-method。 XmlHttpRequest应该能够发送ArrayBuffers,Blobs,Documents,strings和FormData对象(examples at html5rocks)。

但是,不支持发送对象 - 它们需要是可序列化的。您可以将它们作为JSON字符串发送,或使用众多库函数之一生成URL参数字符串(如jQuery.param())。

  

我在哪里可以找到能够回答这个问题的规范?

我已将上述规范链接起来,但是对于浏览器支持,您需要查看compatibility tables或浏览器的文档(例如,MDN处的FF。)

答案 1 :(得分:0)

你可以使用jQuery轻松完成这类工作:jQuery.ajax({ url: http://yoururl.com, data: {"param1": obj.param1, "param2": val}});