总而言之,所有这些答案都是不正确或低效的。
- 可以使用 Ext.Ajax.on,但您将不得不担心请求的竞争条件。不要使用此解决方案,因为它很容易使您陷入困境。Ext.Ajax.on 可能会因为同步以外的原因而被解雇。见展览a。
- batch.operations[0].response.responseText 也可以使用,但这不是获取响应的可靠方式,因为“响应”对象不会总是被填充(这取决于请求,如果有异常,404, 500,成功:假等)
展品
// This picked up my autocomplete comboboxes load - not what I wanted!
Ext.Ajax.on({
requestcomplete: {
fn: callback,
scope: this,
single: true
},
requestexecption: {
fn: callback,
scope: this,
single: true
}
});
当前解决方案
这仍然没有我正在寻找的响应,但是嗯。
store.sync({
failure: function (batch, eOpts) {
// 'this' is the Ext.data.proxy.Ajax object
// or whatever proxy you are using
var data = this.getReader().jsonData,
raw_data = this.getReader().rawData;
}
});
我不确定这将如何处理我的全部异常情况堆栈,但我将根据我发现的服务器端异常(404、500 等)修改我的帖子