您的位置:首页 > 其它

Ajax请求成功后,获取success中的返回的问题

2017-04-18 13:35 309 查看

1.问题描述:在使用Ajax获取josn传过来的集合后,在success回调函数中对josn数据解析完成之后,返回的值为空



2.解决办法:设置Ajax的方法参数async为false,

默认async是true(异步请求) ,我们在这边要使用同步请求,所以改为false.

<script type="text/javascript">
var arr=new Array();//新建一个数组,用来保存接收的数据
function getTime(arr){
$.ajax({
type: "GET",//请求方式
url: "${pageContext.request.contextPath}/AjaxTimeServlet",//发送请求的地址
data: {temperature:$("#temperature").val(), time:$("#time").val()},
dataType: "json",//预期服务器返回的类型
async: false,//设置为同步传输
success: function(data){
var i = 0;
$.each(data, function(key, value){//key和value分别保存的是data集合中的键和值
arr[i] = value;//将data集合中的值依次放进数组中
i=i+1;
});
}
});
alert(arr);
return arr;//返回数组
}
arr = getTime(arr);
alert(arr[0]);
</script>


效果图:



但是这样修改就会出现线程安全的问题,很可能会造成整个浏览器的阻塞,不建议在主线程使用,如果一定要使用同步,放到worker线程中就不会出现同样的问题

3.参考资料:http://www.cnblogs.com/tylerdonet/p/3520862.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 异步 函数 数组
相关文章推荐