数据请求封装有没有什么通用的模版,每次都会忘记,那个能讲讲原理、
数据请求封装有没有什么通用的模版,每次都会忘记,那个能讲讲原理
数据请求封装有没有什么通用的模版,每次都会忘记,那个能讲讲原理;
救救孩子吧
拿去不谢
```javascript
/**
* http配置
* axios参数说明
*/
import axios from 'axios'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
axios.defaults.timeout = 20000;
axios.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8'
//返回其他状态吗
axios.defaults.validateStatus = function (status) {
return status >= 200 && status <= 500; // 默认的
};
//跨域请求,允许保存cookie
axios.defaults.withCredentials = true;
NProgress.configure({
showSpinner: false
});
//HTTPrequest拦截
axios.interceptors.request.use(config => {
NProgress.start();
const meta = (config.meta || {});
const isToken = meta.isToken === false;
//headers中配置serialize为true开启序列化
return config
}, error => {
return Promise.reject(error)
});
//HTTPresponse拦截
axios.interceptors.response.use(res => {
NProgress.done();
const status = res.data.code || 200;
const message = res.data.msg || '未知错误';
if (status !== 200) {
return Promise.reject(new Error(message))
}
return res;
}, error => {
NProgress.done();
return Promise.reject(new Error(error));
});
export default axios;
```
通常使用axios进行http请求
首先创建一个http.js 作为配置文件
封装axios首先要确认请求域名地址、设置请求超时、请求头
是否需要请求拦截,根据token或其他需求进行拦截处理
状态码返回错误信息封装 如最常见的403 404 500
附加的还有就是请求失败后重复请求三次等等处理
然后创建api.js文件进行接口封装处理
百度下axios请求封装很多模板的可以去参考下