Vue Springboot Nginx跨域问题

跨域问题分为开发和生产环境
开发环境:
不需要Nginx

前端:
在axios封装

module.exports = {
  dev: {

    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api': {
        target: 'http://localhost:1234',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },

    // Various Dev Server settings
    host: 'localhost', // can be overwritten by process.env.HOST
    port: 8843, // can be overwritten by process.env.PORT, if port is in use, 
}

后端

@Controller
public class LoginController {
	
	@Autowired
	UserService userService;

    @CrossOrigin
    @PostMapping(value = "/api/login")
    @ResponseBody
    public Result login(@RequestParam Map map, HttpSession session) {

开发环境,配环境真是拼老命了,前后端api保持不变
前端:
封装axios中,有环境切换的实现

// 环境的切换
if (process.env.NODE_ENV == 'development') {    
    axios.defaults.baseURL = 'http://localhost:1122/api';
} else if (process.env.NODE_ENV == 'debug') {    
    axios.defaults.baseURL = 'http://localhost:1122/api';
} else if (process.env.NODE_ENV == 'production') {    
    axios.defaults.baseURL = '/api';
    // axios.defaults.baseURL = '';
}

Nginx中配置跨域:

    location /api {
        proxy_pass http://localhost:1234/api;
    }

debug过程
首先确定前端可以访问,后端的接口可以访问,然后分析代码,根据浏览器network中request URL的请求URL,调整前端baseURL和Nginx中的proxy_pass,使其可以访问到后端的端口
感觉Nginx其实做的就是一个替换

前端小白,一点点摸索开发和debug的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值