将数组参数传递给 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,但你应该注意 null
、undefined
、函数、对象、本地类型(如日期)等。既然你想要要在另一端使用 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";
如何将数组对象传递给 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,但你应该注意 null
、undefined
、函数、对象、本地类型(如日期)等。既然你想要要在另一端使用 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";