VUE跨域配置以及头部携带token
第一步 跨域配置
config文件夹下的index.js添加如下代码
proxyTable: {
'/back-stsem-php-api': {
target: 'http://admin.dashglobal.io/',
changeOrigin: true,
pathRewrite: {
'^/back-stsem-php-api': ''
},
sesure:false
}
},
src文件夹下创建api文件夹存放axios配置文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dd1e4ee5e988f809b99b8b6831d1c6d9.png)
http.js 配置如下
import axios from 'axios'
import qs from 'querystring'
axios.defaults.timeout = 12000
export default {
httpGet (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {params: params}).then(res => {
resolve(res.data)
}).catch(error => {
reject(error)
})
})
},
httpPost (url, params) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(params)).then(res => {
resolve(res.data)
}).catch(error => {
reject(error)
})
})
},
httpFormData (url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params).then(res => {
resolve(res.data)
}).catch(error => {
reject(error)
})
})
}
}
user.js axios 请求写法
import http from './http'
export const userCoinList = (params) => {
return http.httpGet('/back-stsem-php-api/api/client/user_coin_list', params)
}
组件中调用
import {userCoinList} from '../api/user'
methods:{
listData(){
userCoinList('').then(function (res) {
console.log(res);
})
},
}
token 配置 main.js 添加请求拦截器
axios.interceptors.request.use(config => {
if (store.state.token) {
config.headers.common['Authorization'] = 'Bearer ' + store.state.token
}
return config
}, error => {
return Promise.reject(error)
})
axios.interceptors.response.use(
response => {
response.headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
return response
},
error => {
if (error.response) {
switch (error.response.status) {
case 401:
router.replace({
path: '/login',
query: {redirect: router.currentRoute.fullPath}
})
}
}
return Promise.reject(error.response.data)
})