这几天研究一个B/S架构的系统,在页面间进行参数传递时需要读写Cookie,碰到问题:
需在登录界面记录登录者的信息(用户名称)在cookie里,由其它页面读取,登录界面是.aspx文件,系统框架中有一个.html页面,是用javascript写的树形菜单,在树形菜单里要显示用户名称信息,
1、javascript可以读取的函数有:
1.1、function readCookie(name){
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
}
return null;
}
1.2、function readCookie(name){
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
}
return null;
}
2、在aspx文件中写cookie的代码:
在把中文值写入cookie之前需先编码,
Response.Cookies["user_name"].Value =System.Web.HttpUtility.UrlEncode( uname);
3、在javascript中需用函数1.2才能正确读出,否则中文始终显示为乱码。(研究了两天,请教了N多高手,调试了N+1种方法才得出来的不正确结果哦 :-))
4、在.aspx文件中读取cookie的代码:
Label1.Text = System.Web.HttpUtility.UrlDecode(Request.Cookies["user_name"].Value);