把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)...

本文探讨了手机浏览器中Cookie的获取问题,并提供了解决方案。作者发现QQ浏览器和Safari无法完整获取Cookie,而UC浏览器则表现正常。通过将需要存储在Cookie中的值返回到前端并在JS中设置Cookie,成功解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.继上一篇随笔,链接点我,解决手机端cookie的问题。

2.上次用cookie+redis实现了session,并且手机浏览器可能回传cookies有问题,所以最后用js取出cookie跟在请求的url后面。

3.但是今天发现了新的问题,js取cookie存的sessionId为空,情况如下:

   (1)QQ浏览器能获取某些cookie,另一些cookie获取为空,猜测是后台Response SetCookie的时候,手机端浏览器没能良好的接受。

   (2)UC浏览器测试正常。

   (3)Safari情况和QQ浏览器相同。

   (4)PC端正常。

4.这样的情况下,我最终确定问题是, 后台对手机浏览器setCookie时出现问题。

5.解决办法是,将需要存在cookie中的值放到json返回结果中一并返回。

6.在js中使用setCookie的方法来向浏览器设置cookie.

 

7.SetCookie方法如下。

function setCookie(name,value) 
{ 
    var Days = 30; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + Days*24*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 

 

转载于:https://www.cnblogs.com/tdws/p/5449603.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值