UNPKG

@antdp/request

Version:
80 lines (77 loc) 2.14 kB
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _extends from "@babel/runtime/helpers/extends"; // An highlighted block /** * request 网络请求工具 * 更详细的 api 文档: https://github.com/umijs/umi-request */ import { extend } from 'umi-request'; import { notification } from 'antd'; import { codeMessage, setToken, getToken, checkedCode } from './utils'; /** * 异常处理程序 */ var errorHandler = error => { var { response } = error; if (response && response.status) { var errorText = codeMessage[response.status] || response.statusText; var { status, url } = response; notification.error({ message: "\u8BF7\u6C42\u9519\u8BEF " + status + ": " + url, description: errorText }); } else if (!response) { notification.error({ description: '您的网络发生异常,无法连接服务器', message: '网络异常' }); } return response; }; var request = extend({ errorHandler, // 默认错误处理 credentials: 'include' // 默认请求是否带上cookie }); // request请求拦截器, 改变url 或 options request.interceptors.request.use((url, options) => { var token = getToken(); if (token) { //如果有token 就走token逻辑 var headers = _extends({}, setToken(), (options || {}).headers || {}); return { url: url, options: _extends({}, options, { headers: headers }) }; } return { url: url, options: options }; }); // request响应拦截器, 统一处理错误信息 request.interceptors.response.use(/*#__PURE__*/function () { var _ref = _asyncToGenerator(function* (response) { var token = getToken(); if (token) { var store = ANTD_IS_STORAGE ? sessionStorage : localStorage; store.setItem('token', token); } var data = yield response.clone().json(); if (data && data != null && data.code) { checkedCode(data.code, data == null ? void 0 : data.message); } return response; }); return function (_x) { return _ref.apply(this, arguments); }; }()); export default request;