文档首页> Astro轻应用 AstroZero> 常见问题> 应用前端开发> 在AstroZero高级页面中,如何进行统一的HTTP状态拦截?
更新时间:2024-06-19 GMT+08:00
分享

在AstroZero高级页面中,如何进行统一的HTTP状态拦截?

问题描述

高级页面如何进行统一的HTTP状态拦截,如拦截401、403等公共HTTP状态?

解决方法

  1. 参考下方代码自定义库,并打成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;
            }
    
        });
    })();

  2. 租户级别下,上传自定义库。

    1. 登录经典版应用设计器。
    2. 在应用开发页面,单击左侧列表中的,选择“高级页面 > 库”。
    3. 单击“提交新库”,新建库。
    4. 输入库基本信息,单击“上传”,选择1中的zip包,单击“提交”。

  3. 站点内加载使用库。

    1. 在左侧菜单栏下方,选择“页面设置”。
    2. 选择“资源”页签,单击“新建资源”。
      图1 在站点内引用库
    3. 在“新建资源”页面,选择“资源库”,选择库单击“新增”。
      • 全局:该Library可应用于该站点所有高级页面。
      • 视图级:该Library仅应用于web或mobile视图中。
      • 页面级:可应用于具体哪些高级页面。

分享:

应用前端开发 所有常见问题

more