關於COOKIE使用過程中的一個小問題
在程序中要用到COOKIE,
網站website/login/login.aspx
傳值userID到 website/web/tab/web.aspx中的FRAMESET下的一個FRAME menu.aspx
cookie={
setCookie:function(name,value)
{
/*
*---------------setCookie(name,value) -----------------
*setCookie(name,value)
* 功能:設置得變量name的值
* 參數:name,字符串;value,字符串.
* 實例:setCookie('username','baobao')
*---------------setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 將被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() +Days*24*60*60*1000);
document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString();
},
getCookie:function(name)
{
/*
*---------------getCookie(name) -----------------
*getCookie(name)
* 功能:取得變量name的值
* 參數:name,字符串.
* 實例:alert(getCookie("baobao"));
*---------------getCookie(name) -----------------
*/
var arr =document.cookie.match(new RegExp("(^|)"+name+"=([^;]*)(;|$)"));
if(arr !=null) return unescape(arr[2]);
return null;
}
}
發現怎么SETCOOKIE、GETCOOKIE都為NULL
后來度娘說用到FRAMESET涉及到跨域的問題,這,這,有域可跨嗎?
試試吧,在網站IIS加一個HTTP頭 P3P(問度娘)
結果依然!!!
我問遍所有的QQ群,沒有得到任何的答案。
難道是我的SETCOOKIE和GETCOOKIE有問題?
我在以度娘了好久,沒有錯。
那,那……
我等了好幾天。
其中我用兩個網頁測試都沒有問題(注意是在同一個目錄下)
我甚至懷疑是一個是.html,另一個是.aspx的原因
后來我發現我的兩個頁面不在一個目錄下。
是不是這個原因呢?
我趕緊把兩個測試頁面放在同一個目錄下測試,成功。
再放到不同的目錄下測試,NULL
原來是這個原因,不同目錄下的COOKIE不能共享!!
還是度娘(萬能的度娘,我感謝你!)
后來網上也有朋友出來這個問題,
加上一小段就可以了。如下:
setCookie:function(name,value) { /* *---------------setCookie(name,value) ----------------- *setCookie(name,value) * 功能:設置得變量name的值 * 參數:name,字符串;value,字符串. * 實例:setCookie('username','baobao') *---------------setCookie(name,value) ----------------- */
var Days = 30; //此 cookie 將被保存 30 天
var exp = new Date(); exp.setTime(exp.getTime() +Days*24*60*60*1000); document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; }