最近做的electron-vue的一个项目和vue请求一样,封装了下请求接口函数。项目中使用到了element-ui
接口方法使用到了axios和qs(electron-vue中自带了axios和qs,qs解决后台接收不到参数的问题)。
在utils文件夹下新建request.js,代码如下:
import axios from 'axios';
import { Message, Loading } from 'element-ui'
import qs from 'qs'; //参数序列化,把数据格式转为 x-www-form-urlencoded
import store from '../store' //token 放在了vuex store存储中
let BASE_URL = '', loadingInstance;
let HOST = process.env.NODE_ENV; //可自定义写死
switch (HOST) {
case 'development':
BASE_URL = 'http://xx.xx.xxx.xx:8080/api';
break;
case 'test':
BASE_URL = 'http://xx.xx.xxx.xx:8080/api';
break;
default:
BASE_URL = 'http://xx.xx.xxx.xx:8080/api';
}
axios.create({
crossDomain: true,//设置cross跨域
withCredentials: false, //跨域请求是否允许携带cookie资源凭证
baseurl: BASE_URL,
time: 1000 //请求超时时间
// responseType:"arraybuffer" 返回的数据格式
})
// request请求拦截器
axios.interceptors.request.use(config => {
config.headers = {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' //转换数据格式
}
let token = store.state.userInfo.token;
if (token) { //请求携带token