就是我用extjs.ajax.request()从后台得到一个值,要赋值给var userName
现在是在下面的代码中 这个userName没有值
代码:
- JScript code
var userName=''; Ext.Ajax.request({ url:"index.do?action=getUserName", method:'POST', success: function(response,action){ userName= Ext.util.JSON.decode(response.responseText).data.msg; //这里的userName已经有值 }, failure: function(response,options){ RS.failueDeal(); } }); Ext.Msg.alert('信息2',userName);//这里userName没有值
------解决方案--------------------
Ext.Ajax 是异步的吧?等 request 返回以后再观察 userName 的值。
------解决方案--------------------
Ext.Ajax.request是异步的,要在success里面才能活的返回的值,也就是说Ext.Msg.alert('信息2',userName)要放在success里面
------解决方案--------------------
执行 Ext.Msg.alert('信息2',userName); 的时候
还没有执行 userName = Ext.util.JSON.decode(response.responseText).data.msg;
chang to
userName = Ext.util.JSON.decode(response.responseText).data.msg;
Ext.Msg.alert('信息2',userName);
------解决方案--------------------
- JScript code
usserName=''; //不要用var声明全局变量 Ext.Ajax.request({ url:"index.do?action=getUserName", method:'POST', success: function(response,action){ userName= Ext.util.JSON.decode(response.responseText).data.msg; // Ext.Msg.alert('信息',name); // return name; }, failure: function(response,options){ RS.failueDeal(); }, scope:this }); Ext.Msg.alert('信息2',userName); //这里得不到值