跨域问题的解决

跨域
CORS前端最省事,在CORS,前端只需要考虑baseURL和环境变量。
Proxy前端需要在开发环境中配置,还需要在生产环境配置(生产环境一般不需要前端做)
CORS
项目开始前,跟后台要接口地址
开发环境接口

http://192.168.1.xxx:8080 

如果这个接口无法访问,超时,我们可以先在cmd中ping一下ip地址

ping 192.168.1.xxx

如果不能ping通,找后台要最新的ip地址
生产环境接口
有可能在项目开发初期,这个地址不存在,我们可以在项目先自定义一个,只有build时才会用到。
创建环境变量
在根目录中创建.env.development、.env.production,在目录中,根据要求填写变量

VUE_APP_BASEURL=开发环境接口地址
VUE_APP_BASEURL=生产环境接口地址

找到配置baseURL的地方

axios.create({
  // vuecli
  baseURL: process.env.VUE_APP_BASEURL,
  // vite
  baseURL: import.meta.env.xxx
})

然后就可以开发了
Proxy

项目开始前,跟后台要接口地址

在开发环境中配置代理。

vue.config.js

module.exports = {
  devServer: {
    proxy: {
      // 将所有已 /api 开头的请求都进行代理

      // localhost:8080/api/lessons -> xxxx:3000/xxx/lessons
      '/api': {
        target: '开发环境接口',
        ws: true,
        changeOrigin: true,
        // 假如说 后台接口没有公共前缀,我们就需要使用pathrewrite
        pathRewrite: {
          "^/api": ""
        }
      }
    }
  }
}

配置后,我们就可以在开发的过程中,直接使用 “/api/xxx” 作为接口地址,这个地址会去请求 “localhost:8080/api/xxx” 8080会代理到后台地址

开发完成后,我们需要生产环境的代理操作,生产环境中,需要在nginx中进行代理。

location /api {
  proxy_pass http://localhost:3000;
  rewrite "^/api/(.*)$" /$1 break; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值