var detail=true;
     var conn = new Ext.data.Connection({
method: 'POST',
url: 'SysCfg'
});
conn.request({
success: function(response) {
var data = Ext.util.JSON.decode(response.responseText);
detail=data.properties[0].detail;
alert(detail+"111");
},
failure: function(response) {
Ext.MessageBox.hide();
Ext.Msg.show({title: '错误', msg: response.statusText, buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR});
}
});
     alert(detail);怎么会先弹出下面这个alert,而且获取不到从后台得到的值,是js域的问题吗?应该怎么解决

解决方案 »

  1.   

     conn.request----->failure的时候肯定是先弹出下边的框喽,检查一下你的程序吧,有错误的
      

  2.   

    request之后能捕获到返回值吗?是后台有问题吧
      

  3.   


    我说了 只是先alert下面的,返回值没有问题,就是不能重新 赋值给detail,一直是原来的true,不管后台得到的什么
      

  4.   

    不是域问题,而是异步问题,因为ajax请求是异步的所以页面不会等待你的请求结束,而先顺序执行了下面的js代码。改成同步请求就可以看出区别了
      

  5.   


    问题已解决
    加了一个重写的Ext.lib.Ajax,改成同步的了
      

  6.   

    看这个http://nieli.javaeye.com/blog/525656