关于cookie的一些坑

8 篇文章 0 订阅

今天一直在cookie的坑里栽着,专门记录一下。

PHP设置cookie首次设置无效

ajax丢失cookie

window.location.href 跳转时丢失cookie


PHP设置cookie首次设置无效

首先还是要先理解一下cookie的处理机制,

http://www.cnblogs.com/Mwsoft/p/4940268.html

解决办法,我这边直接简单粗暴的先设置一个空值,然后再赋值

$time = time() + 86400 * 7; //cookie过期时间 七天
setcookie("uid", '', $time, '/'); //手机号
//cookie首次设置无法传值,需要二次刷新设置值
$_COOKIE['uid'] = $_POST['MobilePhone'];

ajax丢失cookie

ajax

crossDomain: true,
xhrFields: {withCredentials: true},

PHP页面

// 指定允许其他域名访问
header('Access-Control-Allow-Origin:http://a.fdipzone.com');
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');

// 是否允许请求带有验证信息
header('Access-Control-Allow-Credentials:true');
header('content-type:application/json');

 

window.location.href 跳转时丢失cookie

也不是 window.location.href 跳转导致的cookie丢失,而是document.cookie设置cookie的时候只作用于当前页面,需要设置cookie作用于的路径path

var date=new Date();
var expiresDays=7;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expiresDays*24*3600*1000);
//将两个cookie设置为10天后过期
document.cookie="uid="+ e.uid+"; expires="+date.toGMTString()+"path=/";
document.cookie="password="+ e.password+"; expires="+date.toGMTString()+"path=/";

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值