ASP.NET获取不到JS设置cookies的解决方法,JS与ASP.NET互传cookies
今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码: Code [http://www.xueit.com] // 写cookies functio
今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码:
Code [http://www.xueit.com]
//写cookies function setCookie(name,value) { document.cookie = name "=" escape (value) ";"; //设置的cookie关闭浏览即失效 } //JS设置来路写入到cookie setCookie("fromUrl",document.referrer);
以下是ASP.NET读取cookie代码:
Code [http://www.xueit.com]
/// <summary> /// 读取Cookies /// </summary> /// <param name="str"></param> /// <returns></returns> public string GetCookies(string key) { if (System.Web.HttpContext.Current.Request.Cookies[key] != null) { string _cstr = System.Web.HttpContext.Current.Request.Cookies[key].Value.ToString(); Encoding stre = Encoding.GetEncoding("UTF-8"); return System.Web.HttpUtility.UrlDecode(_cstr, stre); } else { return string.Empty; } } //获取cookie string referer = GetCookies("fromUrl");
在这里ASP.NET使用UTF-8编码来解码JS写cookie的值,要不然取到的cookie会有些不同。
就是以下代码出现ASP.NET居然获取不到js写的cookie,那怎么办呢?别急,下面是解决方法:
重新改一下js代码,如下:
Code [http://www.xueit.com]
//写cookies function setCookie(name,value) { document.cookie = name "=" escape (value) ";path=/"; //设置的cookie关闭浏览即失效 }
加多了一个path=/,就行了。就这么简单。
这里设置了Cookie的Path属性,必须在客户端和服务器端同时设置 Path="/"属性,才能js和ASP.NET对Cookie的操作才能相互作用!另外一个是编码的问题,这里JS中的编码为encodeURI对应ASP.NET的Server.URLEncode。
作者:dodo
出处:http://www.xueit.com/html/2009-12-06/21-984180469828.html
本文版权归作者和学IT网共有,欢迎转载,但未经作者同意必须保留此段声明,并且保留原文链接。否则保留追究法律责任的权利。
精彩图集
精彩文章
热门标签
rowid
中文化
远程重启
img标签
php php文本
分割查询字符
ModelDriven
失去焦点
simplexml_lo
python插件
DOCTYPE
手机号码
字符串截取
前置声明
插入到表
urllib模块
温馨提示
extern
Iisftp.vbs
单系统
Android招聘
目录执行
被7整除
个人空间
两个日期之差
生成类
30日谈
事件传
前缀
黄金比例
ajax实例
toUp
AppCmd.exe
不用图片
No
goto
App版本
二个
技巧
radio
自动验证
数
error
全部未分配
linux创建用
新手建议
CNoTrackObje
请求的资源
Exploit
桥接模式
w命令
确认对话框
宽度
for-each
系统设置
独立分组
ActiveXObjec
zookeeper锁
短生命期数据
页面重新定向
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229

