ajax
该ajax对部分服务器端返回的错误码进行处理(但是开发者也可以处理,错误码如下:

  • 401:session失效
  • 1001:用户登陆超出并发数限制
  • 1002:用户登陆超出单位并发数限制
  • 1003:管理员踢人
  • 1004:另一个地方登录
  • -1001:连接服务器失败
  • -1005:断网了
  • -1009:断网了

构造函数

cmp.ajax

cmp.ajax
(
  • options
)

参数:

名称类型标识描述
options Object 必选

配置参数

名称类型标识描述
type String 必选

ajax请求类型,"GET"或者"POST",默认get

[data] String/Object 可选

请求参数,接受字符串,或者formData

url String 必选

请求地址

[headers] Object 可选

请求header

[dataType] String 可选

参数类型 默认json,接受formData

[timeout] Number 可选

请求超时设置,默认60000(单位:毫秒)

[customCatchError] Boolean 可选

设置是否自行捕获401,1001等那几个错误码,设置true,说明这几个错误开发者自行处理(默认false)

[success] Function 可选

请求成功回调

[error] Function 可选

请求失败回调

示例:

<script>
    cmp.ajax({
       type:"POST",
       data:JSON.stringify(body),
       url:"http://xxxxx",
       headers:{
           'Content-Type': 'application/json; charset=utf-8',
           'Accept-Language' : "zh-CN",
           'option.n_a_s' : '1'
       },
       dataType:"json",
       success:function(result){
           //do something with success result;
       },
       error:function(error){
           if(!cmp.errorHandler(error)){ //先调用平台的错误统一处理机制
               //如果平台的统一处理机制处理不了,则自己写业务逻辑
               var code = error.code;
               if(code==500){
                  //根据code值做自己的业务逻辑
               }
           }
       }
    });

</script>

//常用的发送A8OA的rest接口可参考如下的方式:
//=============M3端=====================================//
<script>
    cmp.ajax({
       url:cmp.seeyonbasepath + '/rest/collaboration/getAll',//url的拼接  A8的域名 + rest + 应用模块名 + 具体接口名
       type:"POST",
       dataType:"json",
       data:JSON.stringify({"name":"x","sex":"nan"})
       headers:{
            'Content-Type': 'application/json; charset=utf-8',
           'Accept-Language' : "zh-CN",
           'option.n_a_s' : '1'
       },
       success:function(result){
       },
       error:function(error){
           if(!cmp.errorHandler(error)){ //先调用平台的错误统一处理机制
               //如果平台的统一处理机制处理不了,则自己写业务逻辑
               var code = error.code;
               if(code==500){
                  //根据code值做自己的业务逻辑
               }
           }
       }
    });

//============微协同端=============================//
    cmp.ajax({
       url:cmp.seeyonbasepath + '/rest/collaboration/getAll',//url的拼接  A8的域名 + rest + 应用模块名 + 具体接口名
       type:"POST",
       dataType:"json",
       data:JSON.stringify({"name":"x","sex":"nan"})
       headers:{
            'Content-Type': 'application/json; charset=utf-8',
           'Accept-Language' : "zh-CN",
           'token':cmp.token,//微协同一定要带上此token
           'option.n_a_s' : '1'
       },
       success:function(result){
       },
       error:function(error){
           if(!cmp.errorHandler(error)){ //先调用平台的错误统一处理机制
               //如果平台的统一处理机制处理不了,则自己写业务逻辑
               var code = error.code;
               if(code==500){
                  //根据code值做自己的业务逻辑
               }
           }
       }
    });
    //注解:
    cmp.seeyonbasepath------------->rest接口的ip
    cmp.token------------------>微协同单点登录token值
</script>
Top