import axios form 'axios'
import store from '@/store/index.js'
import baseUrl from './baseUrl'
import {Message} from 'element-ui'
const http={}
var instance=axios.create({
timeout:5000
})
instance.interceptors.request.use(
function(config){
if(store.state.UserToken){
config.headers.Authorization=store.state.UserToken
}
return config
}
function(error){
return Promise.reject(error)
}
)
instance.interceptors.response.use(
response=>{
return response.data
},
err=>{
if(err&&err.response){
switch(err.response.status){
case 400:
err.message="请求出错"
break
case 401:
Message.warning({
message:'授权失败,请重新登录'
})
store.commit('LOGIN_OUT')
setTimeout(()=>{
window.location.reload()
},1000)
return
case 403:
err.message="拒绝访问"
break
case 404:
err.message='请求错误,为找到该资源'
break
case 500:
err.message='服务器出错'
break
}
}else{
err.message='连接服务器失败'
}
Message.error({
message:err.message
})
return Promise.reject(err.response)
}
)
http.get=function(url,options){
return new Promise((resolve,reject)=>{
instance.get(url,options).then(response=>{
if(response.code===0){
resolve(response.data)
}else{
Message.error({
message:response.message
})
reject(response.message)
}
}).catch(e=>{
console.log(e)
})
})
}
http.post=function(url,data,options){
return new Promise((resolve,reject)=>{
instance.post(url,data,options).then(response=>{
if(response.code===0){
resolve(response.data)
}else{
Message.error({
message:response.message
})
reject(response.message)
}
}).catch(e=>{
console.log(e)
})
})
}
export default http
使用方式,在 /views/api/login.js 中
import axios from "../utils/http"
export function fetchPermission(){
}
export function login(user){
return axios.get('/api/login?user='+user)
}
在login.vue 组件中
async login(){
let data=await login(this.account);
console.log(data)
}