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]
};
 
复制代码

 

posted @   小小徐的大宝宝  阅读(3205)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示