【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法

原文:EXTJS4 - Handle Server-side exceptions and message from an Ajax or Rest proxy


作者:Raja


可能要处理的情况:
success(成功)——Ext处理
failure(失败),由于通讯问题——Ext处理
failure(失败),由于服务器端异常——开发人员人员必须处理的响应失败……


解决方案一:
在应用程序控制器中编写以下方法:

 //Ajax Response Error HandlerExt.Ajax.on('requestexception', function(conn, response, options, eOpts) {var error = response.status + ' - ' + response.statusText;console.log('Ajax Request Exception! '+error);if (response.status != 200) {
var errorData = Ext.JSON.decode(response.responseText);  console.log('ajax req error:'+errorData.message);console.log('Ajax request Error', response.status);}});

解决方案二:
当在服务器端发生异常时,可以将500作为响应标头,原因作为HTML内容发送回客户端。

store.on('loadexception',
function(a,conn,resp) {
if (resp.status == '304') {Ext.Msg.alert('Content has not changed');
}else if(resp.status == '200') {
return; //Do nothing
}else if (resp.status == '401') {Ext.Msg.alert('Authentication required - You need to Login');
}else if (resp.status == '302') {
errorDialog.body.update('Session Has Expired');
errorDialog.show();
}else if(resp.status == '500') {
errorDialog.body.update(resp.responseText);
errorDialog.show();
}else{
errorDialog.body.update('An uncaught exception has occured');
errorDialog.show();
}
}

解决方案三:
当发送Ajax或REST请求时,Ext JS 4代理通常会预期返回的信息包括参数:data、success和message。参数message是可选的,不过当需要将请求结果显示给用户的时候,它就可派上用场了。

function requestMessageProcessor(proxy, response) {if (response && proxy) {                   try {                                              var responseData = proxy.reader.getResponseData(response);if (responseData.message) {var messageDescription = 'Information'; // title of the alert boxvar messageIcon = Ext.MessageBox.INFO;if (!responseData.success){var messageDescription = 'Error';var messageIcon = Ext.MessageBox.ERROR;}Ext.MessageBox.show({title: messageDescription,msg: responseData.message,buttons: Ext.MessageBox.OK,icon: messageIcon});}}catch(err) {// Malformed response most likelyconsole.log(err);}}
}
And here’s the part which should reside in proxy:proxy: {...listeners: { exception: function(proxy, response, options) {requestMessageProcessor(proxy, response);}},afterRequest: function(request, success) {requestMessageProcessor(request.scope, request.operation.response);}
}


转载于:https://www.cnblogs.com/hainange/p/6334159.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache下PHP Loaded Configuration File None 解决方法

解决方法可在apache配置文件中增加 PHPIniDir “The path to your php.ini”, 比如:PHPIniDir "/usr/local/php/etc/php.ini"重启apache。 确保PHPIniDir在loadModule php5_module之前 转载于:https://blog.51cto.com/zrer90/1421464

理解Lucene/Solr的缓存

缓存对于提高搜索引擎的吞吐量,降低CPU占用率极为重要。Lucene/Solr在这块做了很多的工作。Lucene/Solr中默认提供了5种缓存,同时solr还提供扩展缓存接口,允许开发者自定义缓存。1 缓存的基本原理Solr实现了两种策略的缓存:LRU(Le…

深入了解tcmalloc(一):windows环境下无缝拦截技术初探

2019独角兽企业重金招聘Python工程师标准>>> 概述: 又到了一个总结提炼的阶段,这次想具体聊聊游戏引擎中使用的内存管理模块tcmalloc组件的使用心得。项目的前期曾经遇到过内存瓶颈,特别是windows系统下的客户端程序在经历长时间运…

删除数据库日志文件的方法

原文:删除数据库日志文件的方法你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错。然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你! 阅读目录 方法…

数据结构课程设计

20. 公交线路上优化路径的查询 问题描写叙述 最短路径问题是图论中的一个经典问题,当中的Dijkstra算法一直被觉得是图论中的好算法,但有的时候须要适当的调整Dijkstra算法才干完毕多种不同的优化路径的查询。 对于某城市的公交线路,乘坐公…

Android屏幕大小适配问题解决

一、一些基本概念 1、长度(真实长度):英寸、inch 2、分辨率:density 每英寸像素数 dpi(密度) 3、像素:px 4、dip的公式:px /dipdpi/160 所以 dip 类似于英寸、长度&am…

开源 免费 java CMS - FreeCMS1.9 会员组管理

2019独角兽企业重金招聘Python工程师标准>>> 项目地址:http://www.freeteam.cn/ 会员组管理 会员组分为两种,一级是经验会员组,一种是特殊会员组。 经验会员组的会员会根据经验自动变更,特殊会员组不会自动变更&…

C++期末复习总结继承

继承是软件复用的一种形式,他是在现有类的基础上建立新类,新类继承了现有类的属性和方法,并且还拥有了其特有的属性和方法,继承的过程称为派生,新建的类称为派生类(子类),原有的成为…

蓝桥杯历年预赛习题

标题:啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 不要书…

产品经理,你来自江湖

2019独角兽企业重金招聘Python工程师标准>>> 产品经理,你来自江湖 ----论产品经理的发展中的技能与技能图书 导读: 过去的15年中,在互联网行业,我认为没有一个职位比产品经理对行业的推动更大,这些年里&…

小谈深度优先搜索

最近读了一本算法书,书中提到了深度优先算法,于是我就整理了一下。 引入小题: 解决方案:这里先使用最简单最常用的穷举法时行求解。(此代码中的book数组起到了标记的作用,可以参考桶装法排序了解标记的好处…

vim学习(2)小幅提升

2019独角兽企业重金招聘Python工程师标准>>> 搜索: 忽略大小写: :set ignorecase :set noignorecase 在文本中查找下一个WORD: 把光标定位于这个word上,然后按下"*"键 /word "#"命令是&qu…

NetCore NW714 v2.0路由器TTL救砖

路由器成砖状态: 1.客户端无法获取IP地址 2.客户端设置IP地址后,无法PING通路由器IP地址。 3.路由器按reset按钮,无法重置路由器。 4.路由器的指示灯只有SYS和WPS亮,WPS微亮。 5.在路由器的LAN口和WLAN口插入网线,相应…

斐讯k1路由器刷Breed BootLoader(不死UBoot)

前段时间斐讯搞活动,我入手了一部139元的斐讯K1路由器,感觉硬件配置不错,于是就给K1路由器刷入了Breed启动程序。 路由器外观: 路由器内观: 硬件配置: CPU:MediaTek MT7620A ver 2,eco 6 内存…

html中滚动栏的样式

DIV滚动栏设置 &#xff08;CSS&#xff09;2008/09/26 03:07div 中滚动栏的控制2008年01月06日 星期日 01:181)隐藏滚动栏<body style"overflow-x:hidden;overflow-y:hidden">(2)怎样在单元格或图层中出现滚动栏<div style"width:200px;height:200px;…

Openwrt虚拟WAN口叠加网速

Openwrt路由器系统功能强大&#xff0c;接下来我就要用这个系统叠加网速了。 网络环境 我这边用的网络是学校办公室的&#xff0c;听到学校办公室的网&#xff0c;大家应该会认为网速很快&#xff0c;但是我这个学校在交换机上把每个IP的最大速率限制在了1MB/S&#xff0c;实在…

【Go语言】面向对象扩展——接口

简单地说 Interface是一组Method的组合&#xff0c;可以通过Interface来定义对象的一组行为。如果某个对象实现了某个接口的所有方法&#xff0c;就表示它实现了该借口&#xff0c;无需显式地在该类型上添加接口说明。 Interface是一个方法的集合&#xff0c;它里面没有其他类型…

PHPCMS代码生成器

软件截图 软件说明 软件名称&#xff1a;PHPCMS代码生成器 版本&#xff1a;v1.0 开发语言&#xff1a;易语言 软件说明&#xff1a;此软件是用于对PHPCMS模板进行编辑制作的高效代码生成器&#xff0c;大部分的操作代码在此软件内都可实现&#xff0c;欢迎使用。 火眼检测报告…

18款 非常实用 jquery幻灯片图片切换

1、jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动 jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果&#xff0c;带索引按钮控制和左右按钮控制图片切换。 查看演示>> 下载地址 2、jquery图片切换插件制作图片层叠缩放展示效果 jquery图…

全国电视直播v1.0

软件截图 软件说明 软件名称&#xff1a;电视直播 版本&#xff1a;v1.0 开发语言&#xff1a;易语言 软件说明&#xff1a;此软件可以观看几乎全国各地的电视台&#xff0c;无如播放不流畅&#xff0c;可以切换左侧的播放源&#xff0c;欢迎使用。 下载地址&#xff1a;http…