js的http请求,如何获取返回值

qq_41037215 2021-06-21 18:46:35
//请求页面数据
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,有没有大佬帮忙看看,指导指导,谢谢

...全文
1261 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小傻哥 2021-07-26
  • 打赏
  • 举报
回复

xhr是异步执行,所以打印出来的是还没有返回的内容,即空。

可以用阻塞方式,这样就有内容了。也可以用Callback

weixin_50944805 2021-06-23
  • 打赏
  • 举报
回复

// 最简单的是用回调
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) // 返回的数据
})

 

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧