无法从XMLHttpRequest访问数组中的元素。
我有一个名为findProductDetails的函数,我在其中传递了productName,它是数据库中的主键。我使用XMLHttpRequest通过productSearch.php的响应来检索数组。我可以在for循环中完美地打印itemsList。但是我尝试返回该数组,我可以将其打印到控制台,它将显示它的长度为0,并且可以看到这些元素,但是无法将它们分别作为array [n]进行检索。
function findProductDetails(productName){
//Store results
var array = []
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if (xmlhttp.responseText) {
var itemsList = xmlhttp.responseText.split(",");
for(var i = 0; i < itemsList.length; i++) {
array[i] = itemsList[i];
}
}
}
}
xmlhttp.open("GET","productSearch.php?name=" + productName,true);
xmlhttp.send();
return array;
}
这是怎么回事?
答案 0 :(得分:0)
我的解决方案:
function request(method, url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = resolve;
xhr.onerror = reject;
xhr.send();
});
}
然后,每当我想通过回显结果通过php文件从数据库中检索数据时,都会调用此名称。
request("GET", "productSearch.php?name=" + productName,true)
.then(function (e) {
//Results
var res = e.target.response;
}, function (e) {
// handle errors
});