除了Nginx代理可以解决跨域外,在使用vue开发时,通过脚手架vue-cli也可以做服务器代理。
a. config文件下的index.js,设置dev.proxyTable
module.exports = {
dev: {
proxyTable: {
'/agent': {
target: 'http://211.17.162.120:9876/rfid/',
changeOrigin: true,
pathRewrite: {
'^/agent': '/'
}
}
}
}
b. 在调用api时,基url设为’/agent’就可以了
import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
const HOST = '/agent/' //此处是重点
const API_LOGIN = 'signIn'
axios.defaults.baseURL = HOST //此处是重点
axios.defaults.headers.patch['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.withCredentials = true
axios.interceptors.request.use(function (config) {
if (config.ContentType !== 'application/json'
&&config.method !== 'get'
&& config.method !== 'put') {
config.data = qs.stringify(config.data)
}
return config
})
...