怎么把Ajax获取到的值赋值给js变量?

成功从服务器获取到了数据,但是这么返回好像不对,得不到数据,该怎么修改呢?我想直接在js里面,vara=getid(2);调用functiongetid(id){varx... 成功从服务器获取到了数据,但是这么返回好像不对,得不到数据,该怎么修改呢?我想直接在js里面, var a=getid(2);调用 function getid(id) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { resultdata=xmlhttp.responseText; } } xmlhttp.open("GET","getId.php?id="+id,true); xmlhttp.send(); } return resultdata; 展开
 我来答
应松阙德昌
2020-05-30 · TA获得超过3669个赞
知道大有可为答主
回答量:3191
采纳率:24%
帮助的人:159万
展开全部
js是单线程的,常见的问题就是一段复杂的JavaScript脚本会中断页面其它脚本执行,甚至会出现页面失去响应,这也就是为什么ajax的API要设计成异步的。所以,执行function
getid(id)时,先执行其他代码部分,再执行回调函数,即return
resultdata的执行顺序在ajax回调函数resultdata=xmlhttp.responseText之前,所以是得不到数据。
解决办法:针对Ajax请求返回的数据,建议在回调函数中处理吧。【如果你一定要这样用,可以使用一个递归的setTimeout不断去check
Ajax请求是否已经完成(resultdata是否已经被赋值),如果已经完成就使用result的值,退出递归,否则继续~~(网友介绍的方法,没试过,你可以试试)】
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式