springboot前后端分离项目session问题解决

Hush      2022-05-18     169

关键词:

  最近接手了一个新项目,采用了Spring Boot 前后端分离开发,勉强算是吧,因为我们没使用VUE。那么今天就遇到一个问题,登录之后把用户信息存放到了Session中,但是我在其他方法中从Session域再次拿用户信息时,却发现session中没有用户信息。经过调试发现每次Ajax请求过来后对应的session地址都不一样。所以说,有可能是每次请求带过来的Cookie不一样,造成后台认为前台的每次Ajax请求都是一个新的会话。

问题重现:  

  登录方法中用户验证成功后我把User这个对象存放到Session中(如下图所示)。可以看到下面session地址码为 10721 

 

  那么在后面请求中我从Session中取出这个User对象时,却发现session地址码变成了11015。这是一个新的session域,那我从这里面取User对象百分百拿不到啊。

 

 解决方法:

  登录页面(login.html)登录Ajax请求中,加上xhrFields: { withCredentials: true, } 如下面的代码所示。每个Ajax请求都要加!

 1             $.ajax({
 2                         type : 'POST',
 3                         data : {
 4                             username: username, password: password
 5                         },
 6                         xhrFields: {
 7                             withCredentials: true,
 8                         },
 9                         url : "http://localhost:8888/user/login",
10                         dataType : 'json',
11                         success : function(data){
12                             console.log(data);
13                             window.location.href = "index.html";
14                         }
15                     });
View Code

 

 原因:上面登录Ajax请求成功后,跳转到index.html 页面,使用window.location.href = "index.html"请求跳转,没有携带之前的cookie信息,所以web 容器认为这是一个新的会话(不同源),于是就又创建了一个session。因为不同源所以每次获取session都会获得一个新的session。这其实是一个同源策略相关的问题,同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互。

八个开源的springboot前后端分离项目,一定要收藏!

八个开源的SpringBoot前后端分离项目最近前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面,我们也非常建议大家学习一下前后端分离开发,以免在... 查看详情

八个开源的springboot前后端分离项目,一定要收藏!

八个开源的SpringBoot前后端分离项目最近前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面,我们也非常建议大家学习一下前后端分离开发,以免在... 查看详情

springboot搭建web项目(前后端分离,附项目源代码地址)

springBoot搭建web项目(前后端分离,附项目源代码地址)  概述该项目包含springBoot-example-ui和springBoot-example,分别为前端与后端,前后端分离,利用ajax交互。springBoot-example-ui前端html技术:BootStrap + layer + jquer... 查看详情

七个开源的springboot前后端分离项目,一定要收藏!

...动端、Electron环境中的各种开发模式;后端有两个版本:SpringBoot版本和SpringCloud版本,前端有Angular、React以及Electron等版本。项目效果图:微人事star数9313项目地址:https://github.com/lenve/vhr微人事是一个前后端分离的人力资源管理... 查看详情

springboot项目一般选择前后端分离好还是整合freemarker?

springboot项目一般选择前后端分离好?还是整合freemarker?现在项目采用哪种模式多一些啊?并没有好与不好,只有合适与不合适;你要看你的项目的应用场景,开展的具体业务类型;是小型项目,还是一定规模的项目,是你自己... 查看详情

《springboot入门及前后端分离项目实践》系列介绍

课程计划课程地址点这里本课程是一个SpringBoot技术栈的实战类课程,课程共分为3个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是SpringBoot项目实践开发。SpringBoot介绍、前后端分离、API规范等内容旨在让读... 查看详情

nginx反向代理前后端分离项目(后端多台)

...,动态资源和静态资源分离,提高了性能和扩展性。通常SpringBoot与vue进行前后端分离,主要有两种方式:1.打包(npmrunbuild命令)vue项目出来的dist文件夹拷贝到springboot项目的static文件目录,部署到tom 查看详情

springboot微人事管理系统前后端分离附源码

参考技术A项目介绍:此项目是由SpringBoot+Vue前后端分离技术开发,共同学习前后端分离开发项目,共同学习后端技术:前端技术系统部署由于我在vuehr项目中已经配置了端口转发,将数据转发到SpringBoot上,因此项目启动之后,在... 查看详情

springboot可以前后端分离吗

参考技术A可以,现在很多项目都是前后端分离的,只是开发前需要配置环境,数据源,上下端等很多东西。 查看详情

springboot+vue+antdesign前后端分离项目脚手架

项目介绍一款Java语言基于SpringBoot2.x、MybatisPlus、Vue、AntDesign、MySQL等框架精心打造的一款前后端分离框架,致力于实现模块化、组件化、可插拔的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统&#... 查看详情

java网络商城项目springboot+springcloud+vue网络商城(ssm前后端分离项目)二十(登录**)(代码片段)

1.无状态登录原理1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后ÿ... 查看详情

java网络商城项目springboot+springcloud+vue网络商城(ssm前后端分离项目)十九(登录**)(代码片段)

1.无状态登录原理1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后ÿ... 查看详情

dockercompose方式部署springboot前后端分离项目

服务编排方式部署以下文件具体目录 1、构建springboot后台服务dockerfile文件,vim/usr/local/docker/soc/DockerfileFROMjdk:8MAINTAINERsinvie.cnADDScgService.jar/root/ScgService.jarENTRYPOINT["nohup","java","-jar","/root/ScgServ 查看详情

vue2前后端分离项目ajax跨域session问题解决

参考技术AVue2.0中解决cookie和session的发送和接收问题http://www.open-open.com/lib/view/open1493260982052.html 查看详情

vue+springboot前后端分离如何部署项目?

最简单办法,vue编译完后的文件放到后端容器内参考技术A直接上代码GitHub 参考技术Bhttps://blog.csdn.net/u013810234/article/details/89376466https://blog.csdn.net/u013810234/article/details/89392732 查看详情

阿里云(winserver)部署前后端分离项目(springboot+vue+android)

winserver部署前后端分离项目(springboot+vue+android)记录一下,也给小白一些参考首先得会开发springboot、vue、android项目才需要看本文一、前期准备1.轻量级应用服务器2.域名3.备案二、服务器部署springboot项目0.开发... 查看详情

springboot+vue+shiro实现前后端分离权限控制

本文总结自实习中对项目的重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分离的想法,由于之前,没有接触过,主要参考... 查看详情

aspnetmvc前后端分离项目手记关于token认证(代码片段)

...要解决的问题就是身份认证以往的时候,我们使用cookie+session,或者只用cookie来保持会话。 一,先来复习一下cookie和session首先我们来复习一下在aspnet中cookie和session的关系,做一个简单试验这是一个普通的view没有任何处理&nbs... 查看详情