js域问题

xiaochengfu1 2011-01-04 11:02:40
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域的问题吗?应该怎么解决
...全文
73 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaochengfu1 2011-01-04
貌似没人知道?
回复
xiaochengfu1 2011-01-04
xiaochengfu1 2011-01-04
[Quote=引用 7 楼 chenghaoorange 的回复:]
不是域问题,而是异步问题,因为ajax请求是异步的所以页面不会等待你的请求结束,而先顺序执行了下面的js代码。改成同步请求就可以看出区别了
[/Quote]

问题已解决
加了一个重写的Ext.lib.Ajax,改成同步的了
回复
chenghaoorange 2011-01-04
不是域问题,而是异步问题,因为ajax请求是异步的所以页面不会等待你的请求结束,而先顺序执行了下面的js代码。改成同步请求就可以看出区别了
回复
xiaochengfu1 2011-01-04
回复
xiaochengfu1 2011-01-04
[Quote=引用 3 楼 g_beginner 的回复:]
request之后能捕获到返回值吗?是后台有问题吧
[/Quote]

我说了 只是先alert下面的,返回值没有问题,就是不能重新 赋值给detail,一直是原来的true,不管后台得到的什么
回复
xiaochengfu1 2011-01-04
[Quote=引用 2 楼 javagxc 的回复:]
conn.request----->failure的时候肯定是先弹出下边的框喽,检查一下你的程序吧,有错误的
[/Quote]

没有错误,后面的值已经获取到了
回复
G_beginner 2011-01-04
request之后能捕获到返回值吗?是后台有问题吧
回复
javagxc 2011-01-04
conn.request----->failure的时候肯定是先弹出下边的框喽,检查一下你的程序吧,有错误的
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告