解决Vue+springboot(前后端分离)项目的跨域问题

*解决Vue+springboot(前后端分离)项目的跨域问题

一、产生跨域问题的原因
浏览器的为了安全设置的同源策略机制
同源策略:协议、域名、端口号必须同源,否则无法进行访问(如果你能访问任意不同源的服务,岂不是乱了)
二、解决方案(每个都是独立解决方案)
1、前端解决(这里我针对前端解决,利用代理的方式解决,我用vue项目,其他的大同小异)
建立vue配置文件(vue.config.js)

module.exports = {
    devServer: {
        proxy: {
            '/api': {    //所有发送给后台的请求,设置url的前缀为/api
                    target: 'http://localhost:8888',   //指定后台服务的访问地址
                    changeOrigin: true,  //允许修改请求头
                    pathRewrite: {
						'^/api': ''
                    }   
            }
        }
      }
}

后端解决
方式:CORS :跨域资源共享
2、springboot提供了一个注解@CrossOrigin(在controller层添加)
这个注解可以让外界直接访问到这个controller层(缺点:每个controller层都需要添加这个注解)
3、可以利用springboot的**@Configuration定义配置**,进行统一配置
比较常用

@Configuration
public class BaseConfig {
    @Bean
    CorsFilter getCorsFilter(){
        UrlBasedCorsConfigurationSource source=new UrlBasedCorsConfigurationSource();
        CorsConfiguration configuration=new CorsConfiguration();
        configuration.addAllowedMethod("*");//允许怎样的方法(post、get)通过
        configuration.addAllowedOrigin("*");//域名
        configuration.addAllowedHeader("*");//请求头
        source.registerCorsConfiguration("/**",configuration);
        return new CorsFilter(source);
    }
}

主流方法就这些,当然还有一些其他的方法(利用JSONP,这个的话只能是**get请求,**大概原理就是前端可以接受到固定格式的信息,后端的话就把信息封装成这个固定的格式就能返回了)

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值