@antdp/request
Version:
@/antdp-request
97 lines (93 loc) • 3.33 kB
JavaScript
;
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;