87,987
社区成员
发帖
与我相关
我的任务
分享
//请求页面数据
function getProdId1(prod) {
var xml = new XMLHttpRequest();
xml.open('POST', 'http://erp2.ddhing.com/baseInfo/getList',true);
xml.setRequestHeader("Content-Type", "application/json");
xml.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xml.onreadystatechange = function () {
if (xml.readyState == 4 && xml.status == 200) {
var res = eval("(" + xml.response + ")");
var data = res.rows;
//返回想要的数据
return data[0].categoryId;
}
};
var param = '{"hiddenStopped":true,"categoryId":"","keyword":"'+prod+'","page":1,"pageSize":10,"order":"desc"}';
xml.send(param);
}
//打印想要的数据
console.log(getProdId1("dw20210318010"))
如上述代码,我想要获取请求页面的某个值,但是返回的确是undefined,有没有大佬帮忙看看,指导指导,谢谢
xhr是异步执行,所以打印出来的是还没有返回的内容,即空。
可以用阻塞方式,这样就有内容了。也可以用Callback
// 最简单的是用回调
function getProdId1(prod, callback) {
var xml = new XMLHttpRequest();
xml.open('POST', 'http://erp2.ddhing.com/baseInfo/getList',true);
xml.setRequestHeader("Content-Type", "application/json");
xml.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xml.onreadystatechange = function () {
if (xml.readyState == 4 && xml.status == 200) {
var res = eval("(" + xml.response + ")");
var data = res.rows;
//返回想要的数据
callback(data[0].categoryId)
// return data[0].categoryId;
}
};
var param = '{"hiddenStopped":true,"categoryId":"","keyword":"'+prod+'","page":1,"pageSize":10,"order":"desc"}';
xml.send(param);
}
//打印想要的数据
getProdId1("dw20210318010", function(res){
console.log(res) // 返回的数据
})