umijs / umi-request

A request tool based on fetch.
2.2k stars 335 forks source link

errorHandler中response与url等字段是空的 #258

Open wasdujk opened 3 years ago

wasdujk commented 3 years ago

如图,需要这些字段来完成全局错误提示 image

umi-request 配置如下 const errorHandler = (error: ResponseError) => { const { response } = error; debugger if (response && response.status) { const errorText = codeMessage[response.status] || response.statusText; const { status, url } = response; notification.error({ message: 请求错误 ${status}: ${url}, description: errorText, }); }

if (!response) { notification.error({ description: '您的网络发生异常,无法连接服务器', message: '网络异常', }); } throw error; };

export const request: RequestConfig = { prefix: process.env.NODE_ENV === 'development' ? "/devProxy" : '', middlewares: [ async (ctx, next) => { if (getAuthToken()) { if (ctx.req) { // 认证头兼容 // @ts-ignore ctx.req.options.headers.Authorization = getAuthToken(); } } await next(); }, ], errorHandler, errorConfig: { adaptor: (resData, ctx) => { console.debug(resData, ctx) const response = ctx.res; const suitableData: API.ErrorInfoStructure = { code: resData.code, success: true, data: response.data || null, message: response.message, }; if (response.code !== 200) { suitableData.errorCode = response.code; suitableData.success = false suitableData.errorMessage = response.message // suitableData.host = ctx.req.url } return suitableData; }, }, };

相关依赖 "dependencies": { "@ant-design/icons": "^4.5.0", "@ant-design/pro-descriptions": "^1.6.8", "@ant-design/pro-form": "^1.31.0", "@ant-design/pro-layout": "^6.20.0", "@ant-design/pro-table": "^2.43.1", "@umijs/openapi": "^1.1.14", "@umijs/plugin-openapi": "^1.2.0", "@umijs/route-utils": "^1.0.36", "antd": "^4.16.7", "classnames": "^2.2.6", "draft-js": "^0.11.7", "lodash": "^4.17.11", "moment": "^2.25.3", "omit.js": "^2.0.2", "react": "^17.0.0", "react-dev-inspector": "^1.1.1", "react-dom": "^17.0.0", "react-draft-wysiwyg": "^1.14.7", "react-helmet-async": "^1.0.4", "umi": "^3.5.13", "umi-request": "1.3.4", "wangeditor": "^4.7.1", "webpack": "^5.45.1" }

liangxp commented 2 years ago

suitableData.success = false闹腾的吧,之前不会,现在suitableData.success = false会导致页面获取response是undefined

Ami-mi-mi commented 1 year ago

同问,请问您这个问题解决了吗?

wasdujk commented 1 year ago

同问,请问您这个问题解决了吗?

新版本的antd.pro调整了