I want to check if the cookie is existing or not
The problem is it is always returning to null if i check it
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});
}
WHYYY>??
BTW, I used the following plugin:
(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);
As I can see from documentation jquery.cookie.js:
expires
is number of dayshttp://jsfiddle.net/HeGhf/
Looks like you are using jQuery cookie plugin.
Besides cookie expiry issues, you might also want to check your cookie path, making it available to all paths on your domain. You can do so by writing following code,
Without
{path: '/'}
, cookie path will be limited to current path level only.What is
$.cookie
? a jquery plugin?Did you try using
document.cookie
for setting cookie instead of$.cookie
.https://developer.mozilla.org/en-US/docs/DOM/document.cookie