UNPKG

@antdp/request

Version:
97 lines (93 loc) 3.33 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _umiRequest = require("umi-request"); var _antd = require("antd"); var _utils = require("./utils"); // An highlighted block /** * request 网络请求工具 * 更详细的 api 文档: https://github.com/umijs/umi-request */ /** * 异常处理程序 */ var errorHandler = function errorHandler(error) { var response = error.response; if (response && response.status) { var errorText = _utils.codeMessage[response.status] || response.statusText; var status = response.status, url = response.url; _antd.notification.error({ message: "\u8BF7\u6C42\u9519\u8BEF ".concat(status, ": ").concat(url), description: errorText }); } else if (!response) { _antd.notification.error({ description: '您的网络发生异常,无法连接服务器', message: '网络异常' }); } return response; }; var request = (0, _umiRequest.extend)({ errorHandler: errorHandler, // 默认错误处理 credentials: 'include' // 默认请求是否带上cookie }); // request请求拦截器, 改变url 或 options request.interceptors.request.use(function (url, options) { var token = (0, _utils.getToken)(); if (token) { //如果有token 就走token逻辑 var headers = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _utils.setToken)()), (options || {}).headers || {}); return { url: url, options: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, options), {}, { headers: headers }) }; } return { url: url, options: options }; }); // request响应拦截器, 统一处理错误信息 request.interceptors.response.use(/*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(response) { var token, store, data; return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: token = (0, _utils.getToken)(); if (token) { store = ANTD_IS_STORAGE ? sessionStorage : localStorage; store.setItem('token', token); } _context.next = 4; return response.clone().json(); case 4: data = _context.sent; if (data && data !== null && data !== void 0 && data.code) { (0, _utils.checkedCode)(data.code, data === null || data === void 0 ? void 0 : data.message); } return _context.abrupt("return", response); case 7: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }()); var _default = exports["default"] = request; module.exports = exports.default;