如何在失败功能中检索响应消息?
store.sync({
success : function(){},
failure : function(response, options){
console.log(response.responseText); //it does not work, because there is responseText attr in response
}
});
响应文字是这样的,
{"success":false,"message":"Test Error"}
有人知道,请指教。
由于
[编辑]
console.log(response);
然后,
答案 0 :(得分:6)
我不确定你是否想过这个,但上面的建议我很确定是错的。您需要查看商店代理的请求异常。
以下是在进行商店同步之前要调用的一些代码。
Ext.Ajax.on('requestexception', function (conn, response, options) {
if (response.status != 200) {
var errorData = Ext.JSON.decode(response.responseText);
Ext.Msg.alert('Creating User Failed',errorData.message);
}
});
很抱歉挖掘这个旧帖子,但是因为我刚刚经历了同样的斗争,所以看到上面的答案真的很痛苦。
HTH的。
答案 1 :(得分:2)
以下是您的需求:
store.sync({
success: function(batch) {
Ext.Msg.alert('Success!', 'Changes saved successfully.');
},
failure: function(batch) {
Ext.Msg.alert("Failed", batch.operations[0].request.scope.reader.jsonData["message"]);
}
});
答案 2 :(得分:2)
所有这些答案的长短都不正确或效率低下。
展示
// 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
}
});
当前解决方案
这仍然没有我想要的回复,但是meh。
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等)