前端请求cookie丢失问题
问题提出
在开发中的登陆功能基本思路如下:
- 前端请求验证码,后端生成一个验证码(保存在session中)并将其返回给前端,
- 前端用户输入账号、密码、验证码后将表单传给后端,后端对比session中的验证码和用户输入的是否一致。
但是后端在第二步时,session中没有存有之前生成的验证码,也就无法对比用户的验证码是否正常,导致系统一直无法进入。
问题分析
首先需要考虑跨域问题,前端发送请求时要携带cookie,否则获取验证码请求和登陆请求会创建两次session,导致无法取出上一次产生的验证码。打开开发者工具会发现请求头中没有cookie。
解决思路
在项目前后端中加入跨域代码
https://www.jianshu.com/p/dc506490c796 // 前端案例 https://www.cnblogs.com/gcdd/p/12292415.html //后端案例
但是本项目在前后端已经加入了相关的代码,还是存在没有cookie的现象。
浏览器层面问题
之前测试都是在chrome浏览器中进行的,换了火狐发现这个问题不复存在了,所以很可能是chrome浏览器的问题,经过百度发现chrome浏览器会存在session“丢失“问题。具体现象如下:
https://www.jianshu.com/p/76d026cc4dd7 https://blog.csdn.net/fouling/article/details/108357824
所以将chrome浏览器的SameSite属性关闭即可。 在浏览器输入这个地址
chrome://flags/
然后将SameSite属性设置为Disabled即可解决问题。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
润小云解读鸿蒙OS系列(六):分布式软总线之discovery+COAP全流程
简介 Discovery 是一种基于coap 通信协议的设备发现机制;Coap(Constrained Application Protocol)是一种可以使用在资源受限的物联网设备上,并支持可靠传输的轻量化类web协议。它详细规范定义在 RFC 7252, coap 协议支持IP多播, 即可以同时向多个设备发送请求,鸿蒙OS的设备发现功能也是基于这个特性;用户使用discovery功能时,需要保证发现端设备与被发现端设备在同一个局域网内,并且都能收到对方coap协议报文;目前discovery服务仅支持基于Wi-Fi通信方式的设备发现机制。 代码分析 代码目录结构如下图: Discovery 对外提供PublishService() 接口来实现设备的发现功能,其函数实现解读如下: PublishService主要的代码流程图如下,由于篇幅有限我们本次不做详细的介绍。 被发现端主要是通过PublishService()这个函数发布服务。PublishService()函数的实现在discovery_service.c文件中,我们来看看这个函数的主流程代码; 函数参数三个: mo...
- 下一篇
高级前端:详解手写原生Ajax的实现
点击上方“ 前端印象 ”,选择“ 设为星标 ” 第一时间关注技术干货! 对于Ajax,肯定很多小伙伴都听过甚至用过了,那么没听过的也不用着急,本文会对Ajax进行讲解,其次,一定还有一些人只用过JQuery封装好了的Ajax却对原生的Ajax并不了解,那么也不用着急,本文从最基本的Ajax开始讲起,然后最后会尽可能得模仿JQuery对其进行封装,让我刚才提到的两类人能对Ajax有进一步的了解。 一、什么是Ajax Ajax(Asynchronous JavaScript And XML)是2005年新出现的技术,它的出现是为了解决这样一个场景:整个页面中,只有一小部分的数据需要进行更新,按照传统的前后端交互,我们需要向服务器请求该网页的所有数据,然后再在客户端重新渲染,这无疑是非常低效的操作。因此,Ajax就可以做到只向服务器请求我们想要的那一小部分数据,而不用请求全部数据,进而在刷新整个页面的前提下更新那部分的数据。 举个例子,我们去饭店吃饭,然后点了一桌子菜,后来发现其中有一道菜太咸了,因此我们只需要让服务员端回去给厨师重新做这一道菜再拿回来就行了。 在这个例子中的人、物对比Aja...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7