Cookie写入之path的坑
问题
我在/page/index/index.html
中向浏览器添加了一个useid的cookie(这里没有指定path), 然后试着从/page/demo/demo.html
中取值,发现无法取到,
通过开发者工具查看发现userid的path是/page/index/
, 所以无法在page/demo/
下面取到, 解决办法就是在添加cookie时指定path为/page/
, 这时page目录下的所有页面都可以获取到userid
另外, path只能设置为绝对路径
js操作cookie
添加cookie
/**
* 添加cookie
* @param {String} objName
* @param {String} objValue
* @param {Number} objHours
*/
function addCookie(objName,objValue,objHours){
var str = objName + "=" + escape(objValue);
if(objHours > 0){ // 如果不设定过期时间, 浏览器关闭时cookie会自动消失
var date = new Date()
var ms = objHours * 3600 * 1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString() + "; path=/page/;"; // 指定了cookie的path
}
document.cookie = str;
}
获取cookie
/**
* 获取指定名称的cookie值
* @param {Object} objName
*/
function getCookie(objName) {
var arrStr = document.cookie.split("; ");
for (var i = 0; i < arrStr.length; i ++) {
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
删除cookie
/**
* 删除指定名称的cookie值
* @param {Object} objName
*/
function delCookie(objName) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(objName);
if (cval != null) {
document.cookie = objName + "=" + cval + "; expires=" + exp.toGMTString() + "; path=/page/;"; // 指定了cookie的path
}
}
参考文档
- HTTP cookies https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cookie
- document.cookie https://developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie
- Set-Cookiehttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
Cookie写入之path的坑的更多相关文章
- js的cookie写入存储与读取
js的cookie写入存储与读取 在路径url截取需要的数据,存储到cookie里,读取成功并实现跳转. //写cookies 过期时间 2小时后 function setCookie(c_name, ...
- JavaScript中cookie的路径(path)和域(domain)
cookie虽然是由一个网页所创建,但并不只是创建cookie的网页才能读 取该cookie.在默认情况下,与创建cookie的网页在同一目录或子目录下的所有网页都可以读取该cookie.但如果在这个 ...
- 使用GPUImage开启的相机进行摄像,保存写入到Path
之前已经有一篇博客讲过怎么开启摄像头并完成对摄像头的图像的滤镜化了,现在就说说怎么录像,并把这个添加滤镜的录像文件写到Path 原理是GPUImage给出了GPUImageMovieWriter这么个 ...
- Cookie rejected: Illegal path attribute "/nexus". Path of origin: "/content/" 解
问题叙述性说明 通过运行"mvn clean deploy" 命令 将 Maven 项目公布 Nexus 当PW.举例控制台输出以下警告消息: [INFO] Downloaded: ...
- Golang覆盖写入文件的小坑
记录一点Golang文件操作的笔记,环境:Ubuntu // 删除文件 func removeFile() { err := os.Remove("test.txt") if er ...
- cookie中的path与domain属性详解
1.domain表示的是cookie所在的域,默认为请求的地址,如网址为www.jb51.net/test/test.aspx,那么domain默认为www.jb51.net.而跨域访问,如域A为t1 ...
- 测开之路一百三十九:会话管理之cookie写入、读取、和更新
机制:服务器端发送的小段文本信息存储在客户端硬盘 功能:记录用户偏好,请求.页面.站点间共享信息 特点:易丢失.安全隐患 添加cookie,需要用到make_respons.set_cookie @a ...
- laravel cookie写入
$cookie = cookie('cookie_name', 'value', 5); $data = ['title'=>'hello world']; ...
- C# 将cookie写入WebBrowser
string cookie = ""; foreach (string c in cookie.Split(';')) { string[] item = c.Split('=') ...
随机推荐
- “全栈2019”113篇Java基础学习资料及总结
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- junit启动tomcat来进行单元测试
1.pom.xml配置下载需要的jar. <dependency> <groupId>junit</groupId> ...
- AngularJS入门讲解3:$http服务和路由讲解
上一课的例子中,我们的模型数据是硬编码的,也就是说,我们的数据不是从服务器请求回来的. 这里,我们先讲解,如何从服务器获取数据: function PhoneListCtrl($scope, $htt ...
- mybaits中"#"和"$"的区别
动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析.mybatis 为我们提供了两种支持动态 sql ...
- Mac 10.12安装Atom文本增强编辑工具
下载: https://atom.io/
- Mac下利用SSH进行传输文件(转)
//1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目录) //例如scp root@192.168.0 ...
- mono 的System.Data.SqlClient小记录
厦门-JuzzPig() 15:33:36System.Data.SqlClient 不科学的广州-PC286() 15:33:42webservice 返回的是 xml厦门-JuzzPig() ...
- 五一,期待一场这样的旅行,提前预祝Csdner五一快乐
五一,期待一场这样的旅行,提前预祝Csdner五一快乐 五一,你是否期待一次这样的旅行: 住在一间安静优美的小屋,在鸟鸣中起床,推窗有花香铺面而来.早餐过后,在阳光温暖的抚摸里,骑车踏青或光脚奔跑. ...
- HTML5创业的另一种可能
当一种新的颠覆式技术出现,是投靠大平台还是坚持走独立的道路? HTML5(下称H5)火了.在多数人还没完全弄清楚什么是H5时,它已悄无声息地潜入移动端,并渐呈燎原之势火速席卷云寻觅云寻觅. 以前,H5 ...
- Visual Studio 跨平台開發實戰(1) - Hello Xamarin! (转帖)
前言 應用程式發展的腳步, 從來沒有停過. 從早期的Windows 應用程式, 到網路時代的web 應用程式, 再到近幾年相當盛行的行動裝置應用程式(Mobile Application), 身為C# ...