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的代码:

//写cookies function setCookie(name,value) { document.cookie = name "=" escape (value) ";"; //设置的cookie关闭浏览即失效 } //JS设置来路写入到cookie setCookie("fromUrl",document.referrer);
以下是ASP.NET读取cookie代码:

/// <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代码,如下:

//写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网共有,欢迎转载,但未经作者同意必须保留此段声明,并且保留原文链接。否则保留追究法律责任的权利。
精彩图集
精彩文章
热门标签
获取系统图标
垃圾回收机制
表空间
倒数
表数据
无法还原
清空
内部服务器
time模块
.mdf
程序多次启动
二维条形码
提高查询速度
hql语句
安全隐患
模式
Client的简单测
最小宽度
windows7
if条件
Oracle常用命令
web网马
system
相似度
合并多个
获取远程图片
百度Sitemap
导入导出
多文本框
字符类型
定积分
证书加密
time()
arping
把
overload
64位
中翻英
起止时间
atrr
遍历文件
CSS透明属性
磁盘挂载
阿拉伯
置顶
mysql使用教程
选择内容
whois
java单链表
哈弗曼编码
IO文件
select标签
生成随机数
提示模块不存
uniqueidenti
安全设置
左键
CreateThread
startActivi
jqueryhighch
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229