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]
};
 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号