首页 新闻 搜索 专区 学院

怎么把jquery ajax成功返回的数据设置为共有的

0
悬赏园豆:15 [已解决问题] 解决于 2012-09-11 18:15

怎么把jquery ajax成功返回的数据设置为共有的,象下面的

var a2238color = "";

$.ajax({
        url:'RequestServlet',
        type:'GET',
        async:false,
        success: function(data){
            a2238color=data.w;
        }
});
}
alert(a2238color);

结果为空,求答案

ycty的主页 ycty | 初学一级 | 园豆:112
提问于:2012-09-11 17:05
< >
分享
最佳答案
0

$.ajax方法是异步的,你这样估计是还未执行完成就alert了。

var a2238color = "";

$.ajax({
        url:'RequestServlet',
        type:'GET',
        async:false,
        success: function(data){
            a2238color=data.w;

            t();
        }
});
}

function t(){
alert(a2238color);

}


这样试试

收获园豆:4
webaspx | 小虾三级 |园豆:1975 | 2012-09-11 17:24

谢谢了,可以了

ycty | 园豆:112 (初学一级) | 2012-09-11 17:27
其他回答(3)
0

加个设置,dataType="json"

收获园豆:3
向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-11 17:12

刚接触,不怎么理解

是这样的吗,为什么还是一样,alert为空

$.ajax({
        url:'RequestServlet',
        type:'GET',
        async:false,
        dataType:"json",
        success: function(data){
            a2238color=data.w;
        }
});

支持(0) 反对(0) ycty | 园豆:112 (初学一级) | 2012-09-11 17:18

@闲游wep开发: 

后台:

Response.Write("{\"w\":11}");

先改成这样试下

支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-11 17:24
0

你要检查返回的data有没有数据,在检查data.w有没有数据。如果没有应该你传输的数据有问题。还有就是执行时机的问题,ajax是异步执行,在的alert在提交请求之后就执行,这个时候可能ajax还没执行完,所以数据还是原来的空数据,这个你可以把a2238color改为其他如“123”试试,如果还是123说明你的执行时机不对,要在ajax执行成功之后再弹出提示。

收获园豆:4
程序员的人生 | 园豆:235 (菜鸟二级) | 2012-09-11 17:20

对,却是是执行时机不对,但我觉得ajax反应了,那怎么办

支持(1) 反对(0) ycty | 园豆:112 (初学一级) | 2012-09-11 17:25

@闲游wep开发: 写一个函数在内部调用success: function(data){
            a2238color=data.w;

    fun();
        }  在这个函数里处理你的逻辑。你的弹出的基本条件是要ajax成功执行之后再执行你要的逻辑。所以你要在ajax响应之后在处理你要的逻辑。不能想当然。

支持(0) 反对(0) 程序员的人生 | 园豆:235 (菜鸟二级) | 2012-09-11 17:30

不行,虽然那样可以了,但还是在ajax里面,一旦不在了,就还是空,我是这样的做的

window.onload = function() {
$.ajax({
        url:'RequestServlet',
        type:'GET',
        //async:false,
        dataType:"json",
        success: function(data){
            w=data.w;
            t();
        }
});
}
function t(){
    alert(w);
}
//alert(w);
document.write("<img style=\"width:' + w + 'px;height:' + h + 'px\" src=\"' + url + '\" />");

支持(0) 反对(0) ycty | 园豆:112 (初学一级) | 2012-09-11 17:40
0

你的alert在你ajax返回之前就已经做完,你说会有值吗?

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