读书人

一个静态页面将一个值写入Cookie转到

发布时间: 2012-05-16 11:12:12 作者: rapoo

一个静态页面将一个值写入Cookie,转到另一个页面怎么读不出来了?
第一个静态页面中是这样写的:
var selTarget = document.getElementById("roleSelect");
if(selTarget.selectedIndex > -1){
var role=selTarget.value;

setCookie("userRole",role);

location.href="../introduction/introduction_page.html";
}else{
alert("Please select a role!");
}

Cookie的读写函数是这样的:
function setCookie(cookieName,cookieValue){
var theCookie = cookieName + "=" + cookieValue;

var date = new Date("June 3, 2020");
var cookieDate = date.toGMTString();
theCookie += ";expires=" + cookieDate;

document.cookie = theCookie;
}


function getCookie(name){
var cookies = document.cookie.split(";");

for(var i = 0; i < cookies.length; i++){
var cookieCrumbs = cookies[i].split("=");
var cookieName = cookieCrumbs[0];
var cookieValue = cookieCrumbs[1];

if (cookieName == name){
return cookieValue;
}
}

return null;
};


到了introduction_page.html页面,再使用getCookie取值就去不出来了,怎么回事?

[解决办法]
跨域了么 - - 跨域的Cookie不能这么访问
[解决办法]
楼主 需要设置 cookie path
参考下
http://www.cnblogs.com/Darren_code/archive/2011/11/24/Cookie.html
博文的中间 ----- cookie 路径概念


封装了一个cookie

Cme.cookie.js

JScript code
;(function(w, d){    var cookie = function(name, value, options) {        if (typeof value != 'undefined') { // name和value有值, 那么设置 cookie            options = options || {};            if (value === null) {                value = '';                options.expires = -1;            }            var expires = '';            if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {                var date;                if (typeof options.expires == 'number') {                    date = new Date();                    date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));                } else {                    date = options.expires;                }                expires = '; expires=' + date.toUTCString();            }            var path = options.path ? '; path=' + (options.path) : '';            var domain = options.domain ? '; domain=' + (options.domain) : '';            var secure = options.secure ? '; secure' : '';            document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');        } else { // 只有name值 那么获取 cookie            var cookieValue = null;            if (document.cookie && document.cookie != '') {                var cookies = document.cookie.split(';');                for (var i = 0; i < cookies.length; i++) {                    var cookie = trim(cookies[i]);                    if (cookie.substring(0, name.length + 1) == (name + '=')) {                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));                        break;                    }                }            }            return cookieValue;        }    };    function trim(v){        return v.replace(/^\s|\s$/, '');    }    w.Cme ? '' : w.Cme = {};    w.Cme.cookie = cookie;})(window, document); 

读书人网 >JavaScript

热点推荐