- 浏览: 1505573 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
手上一个广告项目,在Firefox下顺利测试通过。自信JS代码能兼容IE,FF测试过后随手就仍给CS测试,结果CS反馈说有问题。排查一番, 发现居然和Javascript 设置 Cookie 时的 path 有关。IE下Cookie种在 /或者URL所在路径时正常,如果Cookie值作用域在当前URL下则IE下javascript 无法获取到设置的Cookie值。
看下面演示代码:
var cookie_name = "name"; var cookie_value = "value"; expires = new Date(); expires.setTime(expires.getTime() + 86400 * 1000); // 有Bug document.cookie无法独到cookie_name值 document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=" + window.location.pathname; // 正常 document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=/test/"; // 正常 document.cookie = "cookie_name=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=/";
怀疑是IE的Bug、
在google上 搜了下关键词: ie javascript cookie path bug
同样的问题在罪与罚
的博客上也有描述,而且博主联系过微软IEBLOG
的Eric。得到的回复是:
You have uncovered an IE bug where cookies that are set with a path that contains a filename (e.g. /page.htm) are not accessible to the document.cookie function, although they are correctly sent to the server in the HTTP header. This has been broken for at least 10 years and unfortunately probably will not be fixed in IE8.
Thanks,
-Eric
一个存在10年的Bug。。。而且IE8也不会修复,实在是无语。
需求是cookie值只对当前页面有效,没办法只好用替代方案,看代码:
//IE Cookie Bug 替代方案 var cookie_path = window.location.pathname; var cookie_name = encodeURIComponent(cookie_path.substring(cookie_path .lastIndexOf('/') + 1)); cookie_path = cookie_path.substring(0, cookie_path.lastIndexOf('/') + 1); var cookie_value = "value"; expires = new Date(); expires.setTime(expires.getTime() + 86400 * 1000); document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=" + cookie_path;
替代方案根据每个页面的URL文件名来做Cookie名,有效范围在当前页路经下。
如:url 等于 /test/test.html
则cookie名为test.html,有效路径为/test/
这样也可以做到同一个js部署在每个页面上能读到只对当前URL有效的cookie值。代价是当用户在同一级目录下访问很多页面时会导致cookie值不
断增大。结果是当前路径下的每个http请求都带很长一段的cookie,直接导致服务器接收客户端request的header长度增长,流量增长的同
时服务器负担也变重。而且根据 RFC 2109
的定义Cookie也有长度和个数限制,IE允许的最大 Cookie 长度是 4096 字节,允许50个
Cookie 名-值对。如果要突破50个名-值对的限制,可以在一个名-值使用Cookie字典的方式保存更多的Cookie变量。
http://blog.seateng.cn/archives/2009/03/ie-javascript-cookie-path-bug.html
评论
发表评论
-
Angularjs 1.x 中使用 layDate 日期控件
2017-10-18 11:30 1739本文参照Angularjs 中使用 layDate 日期控 ... -
简易向左移动的滚动效果 jquery simple marquee
2017-10-15 14:57 528<!DOCTYPE html> ... -
angualrjs添加动态指令(动态编译指令)
2017-09-26 20:45 451本文参考自后补全的代码:http://blog.csdn. ... -
CKeditor的取值和赋值
2017-07-05 14:51 1658<script type="text ... -
Spring boot 环境下配置CKEditor添加google map
2017-07-05 14:39 1217本文档基于已经搭建好基础ckeditor的环境上。如:ht ... -
javascript中借用别的类的方法
2015-12-23 21:58 431借用别的类的方法 /** * Created by ... -
Javascript的类与子类创建
2015-11-11 20:45 821声明父类与子类的示 ... -
jQuery 对 select 操作
2011-09-30 16:54 906转自:http://blog.sina.com.cn/s/bl ... -
JSON2的使用方法心得
2010-10-08 15:09 1861var myJSONObject = {"bindi ... -
json对象的应用
2010-09-07 10:37 1829JSON对象就像是PHP或Java中map型(数组) ... -
JQuery对html控件操作总结
2010-08-11 09:28 2361转自:http://www.cnblogs.com ... -
将json元素添加到表单select中
2010-08-10 15:06 1257将json元素添加到表单select中。 $.a ... -
js加密解密
2010-02-10 16:04 1140JavaScript Code Obfuscator ... -
设为首页JS,加入收藏夹js,加入收藏夹代码,设为首页代码,火狐和ie兼容
2010-01-25 23:10 3752<!DOCTYPE html PUBLIC " ... -
精通 JS正则表达式
2009-11-23 09:36 1033转自:http://www.iteye.com/topic/4 ... -
jQuery.Autocomplete 中文支持
2009-11-10 09:01 28451插件地址:http://bassistan ... -
强烈推荐:240多个jQuery插件
2009-11-08 21:26 1227概述 jQuery 是继 prototype 之后又一个优秀 ... -
jQuery中this与$(this)的区别
2009-11-04 16:28 2423$("#textbox").hover( ... -
JS获得鼠标位置(兼容多浏览器ie,firefox)
2009-10-31 18:57 3751<!DOCTYPE html PUBLIC " ... -
javascript 计算文字长度
2009-10-15 17:52 1672/** * 把中文字符替换两个星号,可以用来计算中文字符串的 ...
相关推荐
这个文件包含了javascript对浏览器cookie文件的设置、读、写、删除四个函数,非常好用。
IE启用javascript IE启用javascript IE启用javascript IE启用javascript IE启用javascript
修复IE的JavaScript的批处理。比如发现IE下,点击JavaScript链接不响应,多数可以用此脚本。
javascript对cookie的日常操作
一个封装好的cookie操作类,完成对Cookie 的增删改查等操作。
IE的JavaScript调试工具,感觉还行
js程序的调试是相当郁闷的,很多错误是无法控制的,在没有什么好的调试工具那是更加麻烦的,现在的情况比以前稍好,在Firefox下还有firebug,这的确是一个不错的js调试工具,但在IE下使用就很麻烦,而且效果很不好,...
cookie-banner, 基于JavaScript的cookie信息横幅,适用于欧盟 cookie Cookie标题 Cookie横幅是确保你遵守欧盟Cookie规则的一种非常简单的方法。 只要从你的页面引用 cookiebanner.min.js 脚本就完成了。Cookie ...
javascript 操作cookiejavascript 操作cookiejavascript 操作cookie
NULL 博文链接:https://conkeyn.iteye.com/blog/423550
通过函数获取JavaScript cookie
javascript-path, JavaScript开发的书籍列表 JavaScript路径
jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本...
火狐和IE支持javaScript脚本的一些区别
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
Cookies.js - JavaScript 客户端的Cookie操作库
在IE中的JS调试一直是影响我们开发效率的一大问题,本文就介绍如何在IE中调试JS
但至于为什么会失败,这个问题查了半天,最后在StackOverflow上面有人提到了,IE从5.0开始就无法为短域名下设置Cookie。 那么多短才会出现问题呢?经过试验,发现包含点号在内一共5个字符以内包括5个字符都无法通过...
javascript操作cookie /** * Read the JavaScript cookies tutorial at: * [url]http://www.netspade.com/articles/javascript/cookies.xml[/url] */ /** * Sets a Cookie with the given name and value. * * name...
本文实例讲述了javascript cookie用法。分享给大家供大家参考,具体如下: 一、什么是 cookie? cookie 就是页面用来保存信息,比如自动登录、记住用户名等等。 二、cookie 的特点 同个网站中所有的页面共享一套 ...