EXT JS 代理抛出错误
EXT JS proxy throwing error
以下代理偶尔抛出 listener
异常。我添加了一个 timeout:100
来尝试重新创建错误并且它每次都成功抛出它。
但是在default 30 秒以下的请求有时会出现错误。
除了超时之外,还有什么会导致抛出 listener
异常吗?错误日志中没有任何信息。
proxy: {
type: 'rest',
url: '/data/identity',
reader: {
type: 'json',
successProperty: 'success',
messageProperty: 'message'
},
writer: {
type: 'json',
writeAllFields: true
},
listeners: {
exception: function(proxy, response, operation, eOpts){
if(operation.action === "read"){
Ext.Msg.alert('Error Retrieving', response.responseText);
}else if(operation.action === "create"){
Ext.Msg.alert('Error Creating', response.responseText);
}else if(operation.action === "update"){
Ext.Msg.alert('Error Updating', response.responseText);
}
}
}
}
operation
对象包含有关错误的信息。它有一个方法 getError()
来获取错误的描述。这可能会向您显示您正在寻找的错误消息:
var error = operation.getError()
if(error.status && error.statusText){
Ext.Msg.alert('Error', 'Error ' + error.status + ': ' + error.statusText)
}
这是我在代理中使用的代码。除了显示 operation
期间抛出的错误外,它还显示服务器端发生的任何错误(我捕获它们并将它们发送到 msg
属性 的 [=21] =] 数据)。我检查 navigator.onLine
的原因是我的应用程序使用了应用程序缓存。
listeners: {
exception: function(proxy, response, operation){
var error = operation.getError(),
errorMsg;
if(!navigator.onLine){
errorMsg = Lang._('You are not connected to internet.')
} else if(Ext.isObject(error)){
if(error.status && error.statusText)
errorMsg = 'Error ' + error.status + ': ' + error.statusText
else
errorMsg = Ext.encode(error)
} else if(response.responseText) {
var json = Ext.decode(response.responseText);
errorMsg = json.msg
}
Ext.Msg.show({
title: Lang._('Error loading external data'),
msg: errorMsg,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
})
}
}
以下代理偶尔抛出 listener
异常。我添加了一个 timeout:100
来尝试重新创建错误并且它每次都成功抛出它。
但是在default 30 秒以下的请求有时会出现错误。
除了超时之外,还有什么会导致抛出 listener
异常吗?错误日志中没有任何信息。
proxy: {
type: 'rest',
url: '/data/identity',
reader: {
type: 'json',
successProperty: 'success',
messageProperty: 'message'
},
writer: {
type: 'json',
writeAllFields: true
},
listeners: {
exception: function(proxy, response, operation, eOpts){
if(operation.action === "read"){
Ext.Msg.alert('Error Retrieving', response.responseText);
}else if(operation.action === "create"){
Ext.Msg.alert('Error Creating', response.responseText);
}else if(operation.action === "update"){
Ext.Msg.alert('Error Updating', response.responseText);
}
}
}
}
operation
对象包含有关错误的信息。它有一个方法 getError()
来获取错误的描述。这可能会向您显示您正在寻找的错误消息:
var error = operation.getError()
if(error.status && error.statusText){
Ext.Msg.alert('Error', 'Error ' + error.status + ': ' + error.statusText)
}
这是我在代理中使用的代码。除了显示 operation
期间抛出的错误外,它还显示服务器端发生的任何错误(我捕获它们并将它们发送到 msg
属性 的 [=21] =] 数据)。我检查 navigator.onLine
的原因是我的应用程序使用了应用程序缓存。
listeners: {
exception: function(proxy, response, operation){
var error = operation.getError(),
errorMsg;
if(!navigator.onLine){
errorMsg = Lang._('You are not connected to internet.')
} else if(Ext.isObject(error)){
if(error.status && error.statusText)
errorMsg = 'Error ' + error.status + ': ' + error.statusText
else
errorMsg = Ext.encode(error)
} else if(response.responseText) {
var json = Ext.decode(response.responseText);
errorMsg = json.msg
}
Ext.Msg.show({
title: Lang._('Error loading external data'),
msg: errorMsg,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
})
}
}