2014-07-21 5 views
0

J'utilise le code suivant pour définir le cookie, cependant, lorsque j'utilise document.cookie dans la console, il n'imprime pas la paire valeur/clé que j'ai transmise via setItem(). Quelqu'un sait quel est le problème?cookie n'est pas toujours défini

var docCookies = { 
    getItem: function (sKey) { 
    return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null; 
    }, 
    setItem: function (sProperties) { 

    var cookieString = ""; 
    var sExpires = ""; 

    for (var sKey in sProperties){ 
     console.log("inside for"); 
     if (sProperties.hasOwnProperty(sKey)) { 
      // alert("Key is " + k + ", value is" + target[k]); 
      console.log("inside if"); 
      cookieString += encodeURIComponent(sKey) + "=" + encodeURIComponent(sProperties[sKey])+"; "; 


      } 
    } 
    console.log("outside for"); 

    document.cookie = cookieString.substring(0,cookieString.length-2); 
    return true; 
    }, 
    hasItem: function (sKey) { 
    return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie); 
    } 

}; 



var expireDate = (new Date((new Date()).getTime() + (60*24*60*60*1000))).toUTCString(); 
var sProperties = []; 
sProperties['_country'] = _country ; 
sProperties['_language'] = _language ; 
sProperties['_pageName'] = _pageName ; 
sProperties['_products'] = _products ; 
sProperties['_events'] = _events ; 
sProperties['_server'] = _server ; 
sProperties['_href'] = _href ; 
sProperties['expires'] = expireDate ; 

docCookies.setItem(sProperties); 

Répondre

0

le cookie que vous souhaitez enregistrer doit être un objet

var sProperties = {}; 
+0

Je lis toutes les valeurs du tableau et les mettre dans 'cookieString' si vous regardez attentivement – Blake

+0

ouais je sais, je veux dire ce 'var sProperties = []; sProperties ['_ country'] = _country; 'est incorrect. sProperties n'obtiendra aucune valeur. Ai-je manqué quelque chose? –

Questions connexes