前置知识:
Vue-CLI
提供了一个 proxy
选项,用来代理接口转发流量。我们可以在根目录下新增 vue.config.js
文件,添加如下的配置:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'https://yulinmu.me',
changeOrigin: true
}
}
}
}
现在在本地请求 http://127.0.0.1:8080/api/movies
就会被自动转发到 https://
yulinmu.me/api/movies
,这样就免去了在服务端设置跨域。
具体操作步骤:
在项目的根目录,我们创建一个.env.development
文件来做开发环境的变量设置。
我们在.env.development
文件下设置变量VUE_APP_BASE_API=/api
即可将devServer的proxy重写的url赋值给VUE_APP_BASE_API,我们仅需在axios
的封装方案上使用VUE_APP_BASE_API
这个变量,就可以对应上devServer设置的变量。
// vue.config.js
module.exports = {
// 修改的配置
// 将baseUrl: '/api',改为baseUrl: '/',
baseUrl: '/',
devServer: {
proxy: {
'/api': {
target: 'https://yulinmu.me',
changeOrigin: true,
ws: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
// .env.development
VUE_APP_BASE_API=/api
最后需要重启服务,让配置生效。