• umi-request ,errorHandler的自定义错误处理信息


    umi-request 的 errorHandler的错误处理是在接口请求的status!=200时的错误处理

    (所有的接口的status都是200,判断错误时自定义错误);自定义的错误信息

    
    
    const defaultOption = {
    prefix: baseUrl,
    // 接口超时时间
    timeout: 45000,
    // 请求方法
    method: "POST"
    }

    const codeMessage = {
    200: '服务器成功返回请求的数据。',
    201: '新建或修改数据成功。',
    202: '一个请求已经进入后台排队(异步任务)。',
    204: '删除数据成功。',
    400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
    401: '用户没有权限(令牌、用户名、密码错误)。',
    403: '用户得到授权,但是访问是被禁止的。',
    404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
    405: '请求方法不被允许。',
    406: '请求的格式不可得。',
    410: '请求的资源被永久删除,且不会再得到的。',
    422: '当创建一个对象时,发生一个验证错误。',
    500: '服务器发生错误,请检查服务器。',
    502: '网关错误。',
    503: '服务不可用,服务器暂时过载或维护。',
    504: '网关超时。',
    };

    /**
    * 请求拦截器
    * @param url 请求参数
    * @param options 请求配置
    */

    // 相应拦截器
    const responseInterceptor = async (response: any) => {
    if (response.status !== 200) {
    const err = new Error('服务器异常');
    throw err;
    } else {
    let result = await response.clone().json();
    console.log(result)
    return result
    }
    }

    /*
    * * 异常处理程序 */ const errorHandler = (error: any) => { const { response, data } = error; console.log(response,data ) if (response && response.status) { const errorText = codeMessage[response.status] || response.statusText; message.error(errorText); } if (!response&&!data) { message.error('哇哦,服务器出错啦,请稍候再试~'); } else if (data) { message.error(data.ret.msg); } }; 需要把data也带进去,去处理自定义错误信息
    export const request: RequestConfig = {
    ...defaultOption,
    errorHandler,
    // requestInterceptors: [requestInterceptor],
    responseInterceptors: [responseInterceptor]
    };
     
  • 相关阅读:
    八皇后 c++
    筛法求素数
    3月13号周练——2015 Multi-University Training Contest 9
    Mac搭建Git服务器—开启SSH
    push自定义动画
    学习:二维码、QR码、J4L-QRCode、java
    Java注解Annotation详解
    IOS 基于APNS消息推送原理与实现(JAVA后台)
    IOS学习笔记—苹果推送机制APNs
    linux yum命令详解
  • 原文地址:https://www.cnblogs.com/xubaoer/p/14778466.html
Copyright © 2020-2023  润新知