前置知识:
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.jsmodule.exports = {// 修改的配置// 将baseUrl: '/api',改为baseUrl: '/',baseUrl: '/',devServer: {proxy: {'/api': {target: 'https://yulinmu.me',changeOrigin: true,ws: true,pathRewrite: {'^/api': ''}}}}}// .env.developmentVUE_APP_BASE_API=/api
最后需要重启服务,让配置生效。