情况一:前端解决跨域配置
request.js代码:
import axios from 'axios'
const request = axios.create({
baseURL: '/api',
timeout: 5000
})
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';
return config
}, error => {
return Promise.reject(error)
});
request.interceptors.response.use(
response => {
let res = response.data;
if (response.config.responseType === 'blob') {
return res
}
if (typeof res === 'string') {
res = res ? JSON.parse(res) : res
}
return res;
},
error => {
console.log('err' + error)
return Promise.reject(error)
}
)
export default request
vue.config.js 代码:
module.exports = {
devServer: {
port: 9876,
proxy: {
'/api': {
target: 'http://localhost:9999',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
情况二:后端解决跨域配置
request.js代码,无需vue.config.js:
import axios from 'axios'
const request = axios.create({
baseURL: 'http://localhost:9090',
timeout: 5000
})
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';
return config
}, error => {
return Promise.reject(error)
});
request.interceptors.response.use(
response => {
let res = response.data;
if (response.config.responseType === 'blob') {
return res
}
if (typeof res === 'string') {
res = res ? JSON.parse(res) : res
}
return res;
},
error => {
console.log('err' + error)
return Promise.reject(error)
}
)
export default request