首页新闻找找看学习计划

jquery的get访问怎么传值到外面呢?

0
悬赏园豆:15 [已解决问题] 解决于 2013-03-22 12:56

 $(document).ready(function () {
            var zNodes = "";
            $.get("test.ashx", function (data) { zNodes = data; alert(zNodes); });
            alert(zNodes);

}

里面的alert可以弹出值来,外面的怎么不可以?怎么做才可以呢

仰望星空66的主页 仰望星空66 | 初学一级 | 园豆:110
提问于:2012-11-21 19:51
< >
分享
最佳答案
0

因在JQuery中ajax默认为异步请求,所以在执行你代码中的$.get("test.ashx", function (data) { zNodes = data; alert(zNodes); });的同时也执行了alert(zNodes);代码,但外面的alert执行的时候,里面的zNodes = data还未执行,所以就会出现外面的弹出为“”值。解决方案为如下

在全局设置:

1  $.ajaxSetup({  
2     async : false  
3 });

然后再使用post或get方法。此原理为将请求设置为同步,代码逐个执行,那么你外面的alert就会弹出值了!

收获园豆:5
乘风直上 | 菜鸟二级 |园豆:233 | 2012-11-26 10:12
其他回答(2)
0

ajax 肯定有延迟的 外面的alert弹出来  zNodes都没赋值上 所以就没内容

收获园豆:5
王大湿 | 园豆:457 (菜鸟二级) | 2012-11-21 20:33
0

异步的操作,你的ajax请求还没有结束,你的外面的alert就弹出来了,怎么会有效果呢?

收获园豆:5
chenping2008 | 园豆:9836 (大侠五级) | 2012-11-21 21:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册