我想检查 cookie 是否存在
问题是如果我检查它总是返回 null
if ($.cookie('cookieCreditDash') == null) {
//CODE ALWAYS ENTER HERE... :(
alert("no cookie");
$.getJSON(url, function(data) {
saveCreditCookie(data);
});
} else{
alert("with cookie");
var data = JSON.parse($.cookie("cookieCreditDash"));
}
function saveCreditCookie(jsonData){
var date = new Date();
date.setTime(date.getTime() + (30 * 60 * 1000));
$.cookie("cookieCreditDash", JSON.stringify(jsonData), {expires: date});
}
为什么>??
顺便说一句,我使用了以下插件:
(function ($, document, undefined) {
var pluses = /\+/g;
function raw(s) {
return s;
}
function decoded(s) {
return decodeURIComponent(s.replace(pluses, ' '));
}
var config = $.cookie = function (key, value, options) {
// write
if (value !== undefined) {
options = $.extend({}, config.defaults, options);
if (value === null) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = config.json ? JSON.stringify(value) : String(value);
return (document.cookie = [
encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// read
var decode = config.raw ? raw : decoded;
var cookies = document.cookie.split('; ');
for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {
if (decode(parts.shift()) === key) {
var cookie = decode(parts.join('='));
return config.json ? JSON.parse(cookie) : cookie;
}
}
return null;
};
config.defaults = {};
$.removeCookie = function (key, options) {
if ($.cookie(key) !== null) {
$.cookie(key, null, options);
return true;
}
return false;
};
})(jQuery, document);