[英]How to get the ajax response from success and assign it in a variable using jQuery?
[英]How to get response text from ajax callback in a variable using ExtJS
我想知道是否可以从Ext.Ajax.Request
调用中获取变量中的responseText
。 我尝试了许多方法,并且“破解”都没有成功。
在这种情况下,我试图将responseText
分配给accStatus
变量,并且我总是变得undefined
(我知道这不是正确的方法),但是我想确切地知道如何处理 (正确的方法)并将其return
我的function
没有问题,并且使用“简单”的方式(如果可能),如下面的代码所示。
顺便说一句,我正在使用Ext 4.2.0 。
Ext.define('Util.AccountManager', {
singleton: true,
getAccountStatus: function(id) {
var accStatus;
Ext.Ajax.request({
url : 'rest/accounts',
method : 'POST',
params : {id: id},
callback: function(o, s, r) {
accStatus = r.responseText;
}
});
return accStatus;
}
});
Ext.onReady(function () {
var id = '1234';
var accStatus = Util.AccountManager.getAccountStatus(id);
if(accStatus) {
console.log(accStatus);
}
});
如果有人想提供帮助,则可以使用以下URLs
导入ExtJS
:
我也将此jsfiddle
仅仅用于“测试”(或至少尝试是因为无法通过该站点发出ajax
请求)。
您的getAccountStatus
需要回调,因此您可以在XHR完成后做出响应。 AJAX是异步的,因此您不能期望在对getAccountStatus
的调用返回之前调用成功回调。
// Will never work unless you use synchronous AJAX (which you shouldn't
// because it would block the UI while the request is pending)
var accStatus = Util.AccountManager.getAccountStatus(id);
改为执行以下操作
Ext.define('Util.AccountManager', {
singleton: true,
getAccountStatus: function(id, cb) {
Ext.Ajax.request({
url : 'rest/accounts',
method : 'POST',
// async: true, // This would make your return work, but don't do it
params : {id: id},
callback: function(o, s, r) {
cb(r.responseText);
}
});
// Code here runs before the callback above
}
});
Ext.onReady(function () {
var id = '1234';
var accStatus = Util.AccountManager.getAccountStatus(id, function(status){
console.log(status);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.