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网共有,欢迎转载,但未经作者同意必须保留此段声明,并且保留原文链接。否则保留追究法律责任的权利。
收藏文章
精彩图集
精彩文章
- 暂无记录。
热门标签
增删查改操作
挂载目录
指针归位
归0
二进制文件头
python文件操
JTextField
记事本
cocos2d-x引擎
扑克发牌
动态控制
strip()
百度贴
截断函数
数据库账号
php php计算
PinnedHeader
value
24天
string-array
php 支持
16777224
行选中
认识与学习
无法登陆
php数组排序
入门实
对象拷贝
扩展欧几里得
出入库
CString
php.ini路径
href
日期插件
sort命令
三层
-Join
带附件的邮件
procedure
生成随机数
一个元素
pro
文本分割器
练习
comm
jQuery没有权限
文件系统
文本块
向量机回归
js离开页面
eaglephp
析构方法
u盘内存卡
限制网页访问
显示当前时间
apache2.2.2+
unity3d
Jquery异步提交
三分钟入门
Lesson03_01
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229