前端localhost调用本地localhost后端接口时的跨域问题

在项目开发的初期,服务器还没有搭建起来时,使用Tomcat等工具在本地部署后端服务是非常常见的方案。同时,前后端都跑在本地localhost也可以有效的解决跨域问题。
但是,如果不进行一些配置,直接使用axios调用本地后端接口,就会出现类似如下的报错:

在这里插入图片描述

这是由于localhost端口号不同导致的不同源

解决方案:

Step1:在vue.config.js中配置proxy

module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: false,
  productionSourceMap: false,
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:端口号', // 配置好的后端接口地址
        // 允许跨域
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/api': '' // 以'/api'开头的url会进行接口转发
        }
      }
    }
  },
}

Step2:在main.js中配置axios

// 引入axios
import axios from 'axios'
Vue.prototype.$axios = axios
axios.defaults.baseURL = '/api' // 一定要设置 axios.defaults.baseURL 为proxy中的转发头

Step3:重启前端serve和Tomcat

重启Tomcat就是将tomcat服务关掉(sh ./shutdown.sh)后重新打开(sudo sh ./startup.sh)

上述步骤依次完成后,即可解决本地前端调用本地后端接口的跨域问题

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJR10byh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值