如何在 Sencha Touch 2 的 Ajax 请求中捕获请求异常?
Posted
技术标签:
【中文标题】如何在 Sencha Touch 2 的 Ajax 请求中捕获请求异常?【英文标题】:How do I trap a requestexception in an Ajax request in Sencha Touch 2? 【发布时间】:2012-09-09 09:12:14 【问题描述】:在我的 Sencha Touch 应用程序中,如果设备连接到 wifi 但没有互联网连接,Ext.device.Connection.isOnline() 将返回 true - 所以我的 Ajax 调用挂起。我正在尝试捕获 requestexception 事件,以便可以优雅地处理错误,但无法使其正常工作。代码如下:
Ext.Ajax.request(
url: [my url],
jsonData: ,
params:
op: 'myop'
,
method:"POST",
success:function(response, opts)
// all good
,
failure:function(response, opts)
// failed
,
listeners:
requestexception: function(connection, response, options, eOpts)
switch(response.status)
case 0 :
Ext.Msg.alert('Error Loading', 'No Internet connection.');
break;
default :
Ext.Msg.alert('Whoops!', 'An unexpected error has occurred.');
);
不知道我做错了什么!
谢谢 马特
【问题讨论】:
【参考方案1】:Ext.define('MyApp.store.MyJsonStore',
extend: 'Ext.data.Store',
config:
storeId: 'MyJsonStore',
proxy:
type: 'ajax',
reader:
type: 'json'
,
constructor: function()
var me = this;
me.callParent(arguments);
me.getProxy().on([
fn: 'onAjaxproxyException',
event: 'exception',
scope: me
]);
,
onAjaxproxyException: function(server, response, operation, options)
//Your code here
);
【讨论】:
以上是关于如何在 Sencha Touch 2 的 Ajax 请求中捕获请求异常?的主要内容,如果未能解决你的问题,请参考以下文章
在 Sencha Touch 2 中更改选项卡时发出 Ajax 请求
无法在 Sencha-Touch2 中使用 Ext.Ajax 运行 javascript?