axios请求封装,实现get,post(json格式),postForm(表单提交)方法
在我们项目开发过程中,离不开与后台的交互,那就是我们常说的掉接口,在脱离了jquery开发体系,在我们的框架vue,react,等的开发中axios脱颖而出,下文代码示例工作中自己封装的请求。import axios from 'axios';import { message } from 'antd';import qs from 'qs';import config from '@c...
·
在我们项目开发过程中,离不开与后台的交互,那就是我们常说的掉接口,在脱离了jquery开发体系,在我们的框架vue,react,等的开发中axios脱颖而出,下文代码示例工作中自己封装的请求。
import axios from 'axios';
import { message } from 'antd';
import qs from 'qs';
import config from '@config/config';
import React from 'react';
const request = {};
message.config({
duration: 2,
maxCount: 1
});
const next = (cb) => {
return (res) => {
if ((res.status >= 200 && res.status < 300) && res.data && res.data.success) {
if (res.data.message) {
message.success(<span className='comment'>{res.data.message}</span>);
}
cb(res.data);
} else {
cb(res.data);
if (res.data.message) {
message.error(<span className='comment'>{res.data.message}</span>);
}
}
};
};
const error = () => (e) => {
message.error(<span className='comment'>{e.message}</span>);
};
request.get = (url, params, cb)=>{
url = config.server + url;
axios.get(url, {params: params})
.then(next(cb))
.catch(error());
};
request.post = (url, data, cb)=>{
url = config.server + url;
axios.post(url, data, {})
.then(next(cb))
.catch(error());
};
// 适用于Content-Type'为'application/x-www-form-urlencoded post请求
request.postForm = (url, data, cb,)=>{
url = config.server + url;
const header = {headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}};
axios.post(url, qs.stringify(data), header)
.then(next(cb))
.catch(error());
};
export default request;
如有错误请指正!!!!
更多推荐
已为社区贡献2条内容
所有评论(0)