我在使用Ajax时遇到问题。
function GetGrantAmazonItemCnt(){ var cnt; Ext.Ajax.request({ url : '', params : {}, success :function(response){ cnt = response.responseText; } }); return cnt; }
问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。
有没有办法使正确的返回响应值?
谢谢!
由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。
我建议重构您的代码以解决此问题。
一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方法将值传递到需要去的地方:
function GetGrantAmazonItemCnt(){ var cnt; Ext.Ajax.request({ url : '', params : {}, success :function(response){ cnt = response.responseText; FunctionThatCalledMe(cnt); } }); }