import axios from "axios"; //不同环境下的地址 let baseURL = ""; //node中的环境变量process.env,也就是我们新增开发、生产的配置文件 // if(process.env.NODE_ENV === "development"){ // baseURL = "http://localhost:7788/" //这里可在vue.config.js做一个代理【代理代码见下】 // }else{ baseURL = "http://localhost:7788/api" // baseURL = "http://192.168.216.203:7788/api" // 线上环境地址 // } // baseURL = "http://localhost:7788/api" //本地测试环境 //创建axios实例 const request = axios.create({ timeout: 5000, baseURL:baseURL }); //所有请求设置了授权头信息【请求头中设置cookie信息,一直携带,判权】 // axios.defaults.headers.common['Authorization'] = `${cookie}`; //这里是设置发送json格式参数 axios.defaults.headers.post['Content-Type'] = 'application/json'; //请求拦截器 request.interceptors.request.use( //发送之前想要做些什么 config => { // token是否过期,是否重新登陆等等 // 此处可修改一些基本数据 // config[baseURL,[data,[headers,[method,[timeout,[url] 等 // 基础地址,请求参数,头部, 请求方式, 超时, 请求地址 等 // config.headers.Cookie = "110110110110110110"; return config; }, //方法返回一个带有拒绝原因的 Promise 对象。 error => Promise.reject(error) ); /**************移除拦截器****************/ // 动态移除 // const me = axios.interceptors.request.use(function () {/*...*/}); // axios.interceptors.request.eject(me); /***************************************/ //响应拦截器(对请求结束后进行一些操作,,例如:统一收集报错) request.interceptors.response.use( //请求成功 (res)=>{ let code = res.data.code // 获取后端返回的状态码 if(code===200){ // 成功 return res.data // 返回里面的数据,在使用这个axios时,获取到的东西就是这里返回的东西 }else{ return res } }, //请求失败 error => { //可根据不同的状态去区分不同的错误,达到不同效果 if(error.response.status){ error.response.status === 404 ? alert("请求不存在!!") : alert("其他"); } return Promise.reject(error); } ); // //封装对应的get请求 // const get = (url, params) => { // return new Promise((resolve, reject) => { // axios.get(url, {params}) // .then(res => resolve(res)) // .catch(err => reject(err)); // }); // } // //封装对应的post请求 // const post = (url, param) => { // return new Promise((resolve, reject) => { // axios.post(url, param) // .then(res => resolve(res)) // .catch(err => reject(err)); // }); // } export default request