踩坑记录之:关于springboot中ajax跨域和session共存问题
前言
这1年多一直用springboot写项目,项目都是采用前后端分离的这种。其实所谓前后端分离就是指将我们的前端html与我们的后端代码分开,后端只负责做业务处理,前端只需要做前端的工作。所以这样子前端想和后端进行交互就涉及到了--跨域。
因为我自己也主要是从事后端,前端也多少懂一些。这里说下我之前写项目遇到的问题,当时做一个业务,需要将前端的表单传递到后端,并保存在session当中作为后续业务的传递。然后就遇到了个问题,前端页面中的值可以成功保存到后端的session当中,但是另一个页面提交数据后,传递到后端需要根据之前保存的session值做比对。然后就出现对比的时候,session中的值取不到了,是null值。然后业务就走不下去了。
后来也是查阅资料,发现了一个坑,我之前的代码是这样写的:
因为springboot中是有支持跨域的,直接在类上加上@CrossOrigin注解,这个注解的意思就是支持前端所有跨域header。
然后Postmapping里要加上一个参数:consumes ="application/x-www-form-urlencoded" 表示是表单数据发送编码类型
然后html页面的ajax 里也需要加上 contentType:"application/x-www-form-urlencoded"
然后我的跨域请求是成功提交的,也保存在了session中,但是在后续的业务里 就取不到这个session了。这到底是什么原因呢?
后来查阅了各种资料,最后点进去看了@CrossOrigin的源码,发现:
这个注解类默认并没有开启对session跨域的一个共享,所以需要自己去开启对跨域参数的一个session授信,在@CrossOrigin的参数里,手动添加2个参数,允许跨域传输所有的header参数,并支持session共享。
然后前端的也要做适配:
然后再启动项目后就可以把值保存到session并成功的传递到各个业务当中了。
- 详解Spring Boot 2.0.2+Ajax解决跨域请求的问题
- SpringBoot解决ajax跨域问题
- 使用 vue + springboot 前后端分离 跨域、cookie、session 问题,全套配置一篇就够了
- ajax跨域问题解决(spring boot)
- 关于springboot 与springcould下jar包兼容问题记录
- Spring Boot学习总结(6)——SpringBoot解决ajax跨域请求问题的配置
- springboot ajax 跨域请求导致sessionId 不一致 解决办法
- springboot-shiro-ajax 跨域问题参考方案
- 关于SpringBoot跨域问题
- 关于Ajax跨域提交时session丢失的问题
- SpringBoot解决ajax跨域问题的方法
- springBoot ajax登录遇到的跨域问题
- springboot学习笔记4( 前后台分离,ajax跨域问题)
- Spring boot Ajax 跨域问题
- Spring boot 完美解决ajax跨域请求问题
- 关于Spring boot 自带的jpa,错误记录
- 关于ajax应用中session过期问题的几个解决方案
- 关于JS的Ajax bf52 方法导致跨域问题的解决办法
- 关于session失效时springmvc拦截器拦截ajax请求失败的问题
- 关于js的ajax方法导致跨域问题的解决办法