将数组参数传递给XMLHttpRequest对象

Pass array parameter to XMLHttpRequest object

本文关键字:XMLHttpRequest 对象 参数传递 数组      更新时间:2024-06-18

如何在XMLHttpRequest上将数组对象传递给我的url参数?我试图传递my_array,但对象未定义。但是,如果我把my_array的console.log放在匿名函数上,对象就会正确填充

var xmlhttp = new XMLHttpRequest();
var url = "exampleUrl="+my_array+"&api_key="+api+"&format=json";
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        my_array = JSON.parse(xmlhttp.responseText);
        //console.log(my_array);
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

看一看encodeURIComponent,但你应该注意nullundefined、函数、对象、日期等原生类型。由于你想在另一端使用JSON.parse,所以在发送数据时应该使用JSON.stringify。

基本上是encodeURIComponent(JSON.stringify(obj))。示例:[1,'string',null,12.34]变为"%5B1%2C%22string%22%2Cnull%2C12.34%5D"

还有其他事情需要考虑,例如GET请求的URL有一些长度限制。为什么不使用jQuery呢?在这种情况下,你可以在数据对象中发送你想要的一切,它会帮你处理它?

除非服务器将exampleUrl参数查询参数的内容作为响应返回,否则您的代码也是错误的。

创建url时,可以使用JSON.stringfy()方法。

var url = "exampleUrl?"+JSON.stringify(my_array)+"&api_key="+api+"&format=json";