axios-react封装

import {

Component

} from "react";

import axios from "axios";

import {

message

} from 'antd';

let base = "http://localhost:8888/amp/theme/api/";

// 请求前拦截

axios.interceptors.request.use(

config => {

return config;

},

err => {

console.log("请求超时");

return Promise.reject(err);

}

);

// 返回后拦截

axios.interceptors.response.use(

data => {

let res = data.data

if (res.code == 200) {

return res.data;

} else {

message.info('服务器开小差了⊙﹏⊙∥');

}

},

err => {

if (err.response.status === 504 || err.response.status === 404) {

console.log("服务器被吃了⊙﹏⊙∥");

} else if (err.response.status === 401) {

console.log("登录信息失效⊙﹏⊙∥");

} else if (err.response.status === 500) {

console.log("服务器开小差了⊙﹏⊙∥");

}

return Promise.reject(err);

}

);

// @RequestBody请求

const postRequestBody = (url, params) => {

return axios({

method: "post",

url: `${base}${url}`,

data: params,

headers: {

"Content-Type": "application/json",

charset: "utf-8"

}

});

};

// @RequsetParam请求

const postRequestParam = (url, params) => {

return axios({

method: "post",

url: `${base}${url}`,

data: params,

transformRequest: [

function(data) {

let ret = "";

for (let it in data) {

ret +=

encodeURIComponent(it) + "=" + encodeURIComponent(data[it]) + "&";

}

return ret;

}

],

headers: {

"Content-Type": "application/x-www-form-urlencoded"

}

});

};

const get = url => {

return axios({

method: "get",

url: `${base}${url}`

});

};

const multiple = function(requsetArray, callback) {

axios.all(requsetArray).then(axios.spread(callback));

};

Component.prototype.get = get;

Component.prototype.postRequestBody = postRequestBody;

Component.prototype.postRequestParam = postRequestParam;

Component.prototype.multiple = multiple;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。