创建require.js
import axios from 'axios';
import QS from 'qs'
axios.defaults.timeout = 5000;
axios.defaults.baseURL ='http://192.168.0.xxx:xxxx'; //填写域名
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.interceptors.request.use(
config => {
let token = sessionStorage.getItem('token');
console.log(token)
if(token){
config.headers.Authorization = 'bearer ' + token;
}
return config;
},
error => {
return Promise.reject(err);
}
);
//响应拦截器即异常处理
axios.interceptors.response.use(response => {
return response
}, err => {
if (err && err.response) {
switch (err.response.status) {
case 400:
console.log('错误请求')
break;
case 401:
console.log('未授权,请重新登录')
break;
case 403:
console.log('拒绝访问')
break;
case 404:
console.log('请求错误,未找到该资源')
break;
case 405:
console.log('请求方法未允许')
break;
case 408:
console.log('请求超时')
break;
case 500:
console.log('服务器端出错')
break;
case 501:
console.log('网络未实现')
break;
case 502:
console.log('网络错误')
break;
case 503:
console.log('服务不可用')
break;
case 504:
console.log('网络超时')
break;
case 505:
console.log('http版本不支持该请求')
break;
default:
console.log(`连接错误${err.response.status}`)
}
} else {
console.log('连接到服务器失败')
}
return Promise.resolve(err.response)
})
const api = {
async get (url, data) {
try {
let res = await axios.get(url, {params: data})
res = res.data
return new Promise((resolve) => {
if (res.code === 0) {
resolve(res)
} else {
reject(res)
}
})
} catch (err) {
alert('服务器出错')
console.log(err)
}
},
async post (url, data) {
try {
let res = await axios.post(url, QS.stringify(data))
res = res.data
return new Promise((resolve, reject) => {
if (res.code === 0) {
resolve(res)
} else {
reject(res)
}
})
} catch (err) {
// return (e.message)
alert('服务器出错')
console.log(err)
}
},
}
export { api }
在组件中引用require.js
import {api} from '../api/request.js'
async login(){
let param={
username:'admin',
password:111111
}
let {data} = await api.post('url',param)
console.log(data)
sessionStorage['token'] = data.token;
},
async aside(){
let {data} = await api.get('url',{
articleId:640,
})
console.log(data)
},