博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法
阅读量:6251 次
发布时间:2019-06-22

本文共 3181 字,大约阅读时间需要 10 分钟。

原文:

作者:

可能要处理的情况:

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

解决方案一:

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

//Ajax Response Error Handler                  Ext.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 box                                   var 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 likely                          console.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

你可能感兴趣的文章
Test1
查看>>
JS图片切换代码合集
查看>>
Aundit使用记录文档
查看>>
原型 、原型链和对象是怎么实现继承的
查看>>
layui中select切换数据_layui 下拉框 动态获取数据
查看>>
佳能hdr_内置HDR功能 佳能5D3特色拍摄功能解析
查看>>
matlab和python转换_将MATLAB代码转换为Python:Python类型和操作顺序
查看>>
jmeter3000用户压测_jmeter集群压测搭建
查看>>
转子接地保护原理_发变组保护动作逻辑
查看>>
hive中groupby优化_面试必备技能-HiveSQL优化
查看>>
uni 页面加载完毕_HTML页面生命周期
查看>>
c语言机票座位预定系统_趁东京奥运!日航要免费送5万张国内机票!给非日本居民...
查看>>
创业冲突的五种解决方法是_冲突管理的五种策略
查看>>
lsmw中文显示乱码_中文注释不能在keil 4/5中正常显示——都是方框或乱码?
查看>>
hcg值小于0.1_【原理】JavaScript 中 0.1 + 0.2 为什么不等于 0.3?
查看>>
springboot的jsp应该放在哪_健身小白用2个月亲身经历告诉你小白去健身房,应该做到哪几点...
查看>>
opencv表面缺陷检测_工业产品表面缺陷检测方法
查看>>
kettle使用数据库来生成序列_时间序列数据库Influxdb的使用
查看>>
配置babel_关于 Babel 你必须知道的
查看>>
数据丢失与重复_消息队列重复消费和数据丢失问题(石衫面试突击学习笔记)...
查看>>