将数组参数传递给 XMLHttpRequest 对象

Pass array parameter to XMLHttpRequest object

如何将数组对象传递给 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.stringify() 方法
var url = "exampleUrl?"+JSON.stringify(my_array)+"&api_key="+api+"&format=json";