后端跨域总结

本文介绍了三种实现跨域的方式:使用注解@CrossOrigin、在WebMvcConfigurer中配置addCrosMappings方法以及在filter中设置请求头。重点讨论了跨域导致session变化的问题,提出前端设置credentials:include和后端allowCredentials设置的解决方案。
摘要由CSDN通过智能技术生成

#跨域的主要实现方法。

1.注解@CrossOrigin

2.配置类实现WebMvcConfigurer接口下的addCrosMappings方法,添加几个请求头,包括

允许跨域的路径,方法等。注意.allowCredentials(true);为true,则.allowedOrigins("http://localhost:63342")必须指定准确的来源,不能是*
        

3.在fillter里面手动设置请求头

#跨域导致session变化而取不到已经存入sesion的内容

场景:第一次登陆在http://localhost:63342。后续发请求都是http://localhost:8080

第一次登陆后在session中存了用户id,后来要验证的时候取不到了

原因:浏览器默认同源才会带上次的sessionid,不同源相当于重新会生成一个sessionid

解决办法:前端发fecth请求加上:credentials: 'include',后端的.allowCredentials设置为true,设置好允许的源即可。相当于允许了不同源的地址能携带认证信息。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值