network/request.js网络请求模块封装
Posted 紫色烟云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了network/request.js网络请求模块封装相关的知识,希望对你有一定的参考价值。
网络请求模块封装
import axios from "axios"; //引入axios模块
export function request(config) {
//1,创建axios的实例
const instance = axios.create({
baseURL: "http://123.207.32.32:8000",
timeout: 5000
});
// 2,axios的拦截器
// 拦截器的作用:1,处理一些信息不符合服务器的要求;2,发送网络请求时界面出现loading动画;3,某些网络请求(比如登录(token)),必须携带一些特殊的信息
instance.interceptors.request.use(config => {
console.log("请求拦截");
return config; //请求拦截器属于中间件需要返回config
}, err => {
console.log("请求拦截后出现错误!!", err);
return Promise.reject(err);
});
// 3,响应拦截
instance.interceptors.response.use(res => {
console.log("响应拦截");
return res.data; //响应拦截器属于中间件需要返回res,因为一般只用res.data所有此处也可返回res.data
}, err => {
console.log("响应拦截后出现错误!!", err);
return Promise.reject(err);
});
return instance(config); //4,axios.create方法返回值为Promise对象
}
/* 5,在其它组件内使用本网络请求模块:1,引入:import {request} form "network/request.js" 2,使用: request({url:"XX"}.then(res=>{}).catch(err=>{}); ) */
/* 更多使用说明请查看文档:https://www.kancloud.cn/yunye/axios/234845/ */
@沉木
以上是关于network/request.js网络请求模块封装的主要内容,如果未能解决你的问题,请参考以下文章
Vue总结第七天~Promise网络请求和axios 网络模块