当前位置: 首页 > news >正文

前后端分离不存在会话,sessionid不一致问题

目录

1.使用拦截器解决跨域的示例:

2.使用redis,不使用session 


前后端不分离项目我们可以通过session存储数据,但是前后端分离时不存在会话,每次请求sessionid都会改变,当值我们储存的数据不能取出来。

1.使用拦截器解决跨域的示例:

前端代码:

fetch('http://localhost:8080/api/user', {method: 'GET',headers: {'Content-Type': 'application/json;charset=UTF-8'}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error))

在上面的代码中,我们使用fetch函数向后端发送了一个GET请求,并设置了请求头中的Content-Type为application/json;charset=UTF-8。

后端代码:

首先,我们需要定义一个拦截器,在请求处理之前进行跨域处理:

public class CorsInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {response.setHeader("Access-Control-Allow-Origin", "*");response.setHeader("Access-Control-Allow-Methods", "*");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Headers", "*");response.setHeader("Access-Control-Allow-Credentials", "true");return true;}}

在上面的拦截器中,我们设置了

Access-Control-Allow-Origin、

Access-Control-Allow-Methods、

Access-Control-Max-Age、

Access-Control-Allow-Headers、

Access-Control-Allow-Credentials等跨域请求头。

然后,在我们的配置类中注册拦截器:

@Configuration
public class CorsConfiguration implements WebMvcConfigurer {@Beanpublic CorsInterceptor corsInterceptor() {return new CorsInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(corsInterceptor());}}

在上面的配置类中,我们创建了一个CorsInterceptor对象,并将其注册到InterceptorRegistry中,从而实现了使用拦截器解决跨域问题。

通过拦截器,我们可以在请求处理之前进行跨域处理,从而避免前后端分离中sessionid不同的问题。

2.使用redis,不使用session 

把要存储到session的数据通过redis储存,思路一致

优点:

而Redis可以代替session是因为它具有快速、可靠的内存数据库特性,并且支持分布式存储,能够处理高并发的请求。在使用Redis代替session时,我们可以将session存储在Redis中,可以通过Redis提供的get和set方法来获取和设置session,从而实现前后端分离的状态管理。

使用Redis代替session的优点包括:

  1. 可以避免session共享带来的问题,如session劫持等安全问题。

  2. 可以提高系统的性能和可扩展性,因为Redis可以处理大量的请求,并且支持分布式存储。

  3. 可以提高系统的可靠性,因为Redis具有高可靠性和容错性,即使某个节点出现故障,也不会对整个系统造成影响。

总之,通过使用Redis代替session,可以在前后端分离的开发模式下,实现更加高效、可靠和安全的状态管理。

相关文章:

前后端分离不存在会话,sessionid不一致问题

目录 1.使用拦截器解决跨域的示例: 2.使用redis,不使用session 前后端不分离项目我们可以通过session存储数据,但是前后端分离时不存在会话,每次请求sessionid都会改变,当值我们储存的数据不能取出来。 1.使用拦截器…...

Python 3+ 安装及pip配置

Python 3 安装及pip安装升级 1. 安装Python依赖2. 在Linux服务器下载3. 创建python链接4. 配置pip 服务器环境:Linux CentOS 7 内核版本3.10 Python版本:3.10.6 由于CentOS 7默认安装python2.7,使用yum可以查到最新的python3版本为3.6.8&…...

StarRocks入门到熟练

1、部署 1.1、注意事项 需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项: 1.1.1、FE数量及高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Followe…...

Zabbix Api监控项值推送:zabbix_sender

用法示例: zabbix_sender [-v] -z server [-p port] [-I IP-address] [-t timeout] -s host -k key -o value其中: -z 即 --zabbix-server,Zabbix server的主机名或IP地址。如果主机由proxy监控,则应使用proxy的主机名或IP地址-…...

Shell脚本开发:printf和test命令的实际应用

目录 Shell printf 命令 打印简单文本 Shell test 命令 1、文件测试 2、字符串比较 3、整数比较 逻辑运算: Shell printf 命令 当你使用Shell中的printf命令时,它可以帮助你格式化和输出文本。 打印简单文本 这将简单地打印字符串"Hello, …...

React笔记(三)类组件(1)

一、组件的概念 使用组件方式进行编程,可以提高开发效率,提高组件的复用性、提高代码的可维护性和可扩展性 React定义组件的方式有两种 类组件:React16.8版本之前几乎React使用都是类组件 函数组件:React16.8之后,函数式组件使…...

Hugging Face实战-系列教程4:padding与attention_mask

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在notebook中进行 本篇文章配套的代码资源已经上传 上篇内容: Hugging Face实战-系列教程3:文本2分类 下篇内容: …...

睿趣科技:抖音开网店卖玩具怎么样

近年来,随着社交媒体平台的飞速发展,抖音作为一款短视频分享应用也迅速崭露头角。而在这个充满创业机遇的时代背景下,许多人开始探索在抖音平台上开设网店,尤其是卖玩具类商品,那么抖音开网店卖玩具究竟怎么样呢? 首先…...

简易虚拟培训系统-UI控件的应用4

目录 Slider组件的常用参数 示例-使用Slider控制主轴 示例-Slider控制溜板箱的移动 本文以操作面板为例,介绍使用Slider控件控制开关和速度。 Slider组件的常用参数 Slider组件下面包含了3个子节点,都是Image组件,负责Slider的背景、填充区…...

#include <graphics.h> #include <conio.h> #include<stdlib.h>无法打开源文件解决方案

一、问题描述 学习数据结构链表的过程中&#xff0c;在编写漫天星星闪烁的代码时&#xff0c;遇到了如下图所示的报错&#xff0c;#include <graphics.h> 、 #include <conio.h> 等无法打开源文件。 并且主程序中initgraph(初始化画布)、setfillcolor&#xff08;…...

【C语言】数据结构的基本概念与评价算法的指标

1. 数据结构的基本概念 1.1 基本概念和术语 1.1.1 数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料 1.1.2 数据元素 数据元素是数据的基本单位,通常作为一个整体进行考虑和…...

[PyTorch][chapter 54][Variational Auto-Encoder 实战]

前言&#xff1a; 这里主要实现&#xff1a; Variational Autoencoders (VAEs) 变分自动编码器 其训练效果如下 训练的过程中要注意调节forward 中的kle ,调参。 整个工程两个文件&#xff1a; vae.py main.py 目录&#xff1a; vae main 一 vae 文件名&#xff1a; vae…...

Java实现HTTP的上传与下载

相信很多人对于java文件下载的过程都存在一些疑惑&#xff0c;比如下载上传文件会不会占用vm内存&#xff0c;上传/下载大文件会不会导致oom。下面从字节流的角度看下载/上传的实现&#xff0c;可以更加深入理解文件的上传和下载功能。 文件下载 首先明确&#xff0c;文件下载…...

VPG算法

VPG算法 前言 首先来看经典的策略梯度REINFORCE算法&#xff1a; 在REINFORCE中&#xff0c;每次采集一个episode的轨迹&#xff0c;计算每一步动作的回报 G t G_t Gt​&#xff0c;与动作概率对数相乘&#xff0c;作为误差反向传播&#xff0c;有以下几个特点&#xff1a; …...

docker 笔记5:redis 集群分布式存储案例

尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 目录 1.cluster(集群)模式-docker版哈希槽分区进行亿级数据存储 1.1面试题 1.1.1 方案1 哈希取余分区 1.1.2 方案2 一致性哈希算法分区 原理 优点 一致性哈希算法的容错性 一致性…...

【Vue2】 axios库

网络请求库-axios库 认识Axios库为什么选择Axios库安装Axios axios发送请求常见的配置选项简单请求可以给Axios设置公共的基础配置发送多个请求 axios创建实例为什么要创建axios的实例 axios的拦截器请求拦截器响应拦截器 axios请求封装 认识Axios库 为什么选择Axios库 在游览…...

云计算 - 百度AIStudio使用小结

云计算 - 百度AIStudio使用小结 前言 本文以ffmpeg处理视频为例&#xff0c;小结一下AI Studio的使用体验及一些避坑技巧。 算力获得 免费的算力获得方式为&#xff1a;每日登录后运行一个项目&#xff08;只需要点击运行&#xff0c;不需要真正运行&#xff09;即可获得8小…...

刷新你对Redis持久化的认知

认识持久化 redis是一个内存数据库&#xff0c;数据存储到内存中。而内存的数据是不持久的&#xff0c;要想做到持久化&#xff0c;就需要让redis把数据存储到硬盘上。因此redis既要在内存上存储一份数据&#xff0c;还要在硬盘上存储一份数据。这样这两份数据在理论上是完全相…...

Greenplum-最佳实践小结

注&#xff1a;本文翻译自https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/best_practices-logfiles.html 数据模型 Greenplum数据库是一个分析型MPP无共享数据库。该模型与高度规范化/事务性的SMP数据库明显不同。Greenplum数据库使用适合MPP分析处理的非…...

从Gamma空间改为Linear空间会导致性能下降吗

1&#xff09;从Gamma空间改为Linear空间会导致性能下降吗 2&#xff09;如何处理没有使用Unity Ads却收到了GooglePlay平台的警告 3&#xff09;C#端如何处理xLua在执行DoString时候死循环 4&#xff09;Texture2DArray相关 这是第350篇UWA技术知识分享的推送&#xff0c;精选…...

Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service

Win10家庭版性能优化实战&#xff1a;精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿&#xff0c;或是视频渲染到关键时刻系统响应迟缓&#xff0c;很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...

量子软件测试的挑战与优化策略

1. 量子软件测试的挑战与机遇量子计算正在从实验室走向实际应用&#xff0c;随之而来的是对可靠量子软件的需求激增。与传统软件不同&#xff0c;量子程序面临三大独特挑战&#xff1a;首先&#xff0c;量子态的叠加性和纠缠性使得测试变得异常复杂。一个n量子比特系统可以同时…...

保姆级教程:在Windows 10上用QEMU+Kylin搭建可内外网访问的完整开发环境

在Windows 10上构建QEMUKylin全功能开发环境的终极指南当开发者需要在本地快速搭建一个隔离的国产操作系统开发环境时&#xff0c;QEMU虚拟化方案配合银河麒麟系统能提供高度灵活的沙箱体验。本文将手把手带你完成从零配置到内外网联通的完整工作流&#xff0c;涵盖虚拟化环境部…...

微信小程序项目实战:从npm安装Vant Weapp到解决样式冲突的完整避坑指南

微信小程序工程化实战&#xff1a;Vant Weapp集成与样式冲突解决方案全解析 第一次在小程序里引入Vant Weapp时&#xff0c;我对着满屏错位的组件样式发呆了半小时——原本优雅的按钮变成了扭曲的色块&#xff0c;表单元素叠在一起像抽象画。这不是个例&#xff0c;根据社区反…...

Git Bash 中无法启动 Claude Code ?

最近需要在 git bash 中跑 Claude Code 。git bash 是随 git for windows 套件安装的&#xff0c;很久没更新了&#xff0c;结果启动 Claude Code 报错&#xff1a;Warning: no stdin data received in 3s, proceeding without it. If piping from a slow command, redirect st…...

天文时序数据分析:机器学习评估、半监督学习与无监督方法实战

1. 项目概述&#xff1a;当机器学习遇见星空 处理海量的天文时序数据&#xff0c;比如来自Kepler、TESS这些“巡天巨眼”的光变曲线&#xff0c;早已不是靠人眼一张张图去翻的时代了。数据量太大&#xff0c;噪声复杂&#xff0c;信号微弱&#xff0c;传统方法常常力不从心。这…...

还在古法编程?OpenAI Codex 全自动编程!稳定中转 Token 保姆级教程

OpenAI Codex 从安装到进阶实战&#xff5c;终端 AI 编程完全指南&#xff08;2026 最新&#xff09; 摘要&#xff1a;OpenAI Codex 是目前最强大的终端 AI 编程工具&#xff0c;支持代码生成、项目重构、Bug 修复、脚本自动化、批量代码优化等全场景能力。本文从零起步&…...

sd卡分区了数据还能恢复吗,只需3种方法和视频教学,数据就能神奇地回来!

断开读写通信&#xff01;锁死底层端口&#xff01;你的sd卡在经历重新分区的一瞬间&#xff0c;其物理层面的扇区正在承受最严酷的逻辑改写。这并非介质烧毁&#xff0c;而是系统内核强行切断了旧有簇链的映射关系&#xff0c;将其标定为休克态。此时若任由操作系统自动加载缩…...

将Taotoken作为统一AI网关整合进企业现有微服务架构的实践思路

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 将Taotoken作为统一AI网关整合进企业现有微服务架构的实践思路 在构建以AI能力驱动的现代应用时&#xff0c;中型及以上的企业常面…...

事故数据四年连降,为何山西煤矿的命还是悬在一根绳上?

说实话&#xff0c;写到山西煤矿这四个字&#xff0c;我心里就咯噔一下。2026年5月22日19时29分&#xff0c;山西长治市沁源县山西通洲集团留神峪煤业有限公司井下发生瓦斯爆炸事故&#xff0c;截至到写稿&#xff0c;事故已造成90人遇难。看的心里堵得慌。我特意去翻了翻这些年…...