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('服務(wù)器開小差了⊙﹏⊙∥');

}

},

err => {

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

console.log("服務(wù)器被吃了⊙﹏⊙∥");

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

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

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

console.log("服務(wù)器開小差了⊙﹏⊙∥");

}

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;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容