更新时间:2024-10-29 GMT+08:00
在AstroZero高级页面中,如何进行统一的HTTP状态拦截?
问题描述
高级页面如何进行统一的HTTP状态拦截,如拦截401、403等公共HTTP状态?
解决方法
- 参考下方代码自定义库,并打成Zip包。
定制要求:CustomConnectorFilter = ConnectorFilter.extend等内容不允许修改,只需定制修改process方法的实现,必须要有返回值true或false。其中,返回true表示继续执行逻辑,返回false将终止。
(function() { var CustomConnectorFilter = ConnectorFilter.extend({ /** Connector拦截器,业务可根据返回值进行处理 <p> 返回true继续执行逻辑;返回false将终止 <p> 方法中可获取的参数<br/> url : 请求地址 params : 请求参数 status : 响应码 statusText : 响应码内容 resp : 返回参数 */ process: function() { var thisObj = this; // 方法内部要求同步处理 if (thisObj.status == 401) { // 跳转登录 return false; } return true; } }); })();
- 租户级别下,上传自定义库。
- 站点内加载使用库。
- 在左侧菜单栏下方,选择“页面设置”。
- 选择“资源”页签,单击“新建资源”。
图1 在站点内引用库
- 在“新建资源”页面,选择“资源库”,选择库单击“新增”。
- 全局:该Library可应用于该站点所有高级页面。
- 视图级:该Library仅应用于web或mobile视图中。
- 页面级:可应用于具体哪些高级页面。
父主题: 应用前端开发