2012-10-01 9 views
1

J'ai créé un cookie par javascript. Ce que je veux effacer lors de la déconnexion. Le site fonctionne sur SSL. Voici le code JS que j'ai utilisé pour la création et la suppression de cookie. Notez qu'il s'agit d'un cookie ordinaire (non http, non sécurisé et aussi simple que possible). Voici la fonction qui crée le cookie, qui crée un cookie très bien, ce cookie est un cookie de session et tous les autres détails sont des paramètres utilisés pour créer ce cookie.Pourquoi le cookie n'est-il pas supprimé?

login: function() { 
"use strict"; 
var cookieKeys, cookieValues; 
if (cookieExists(this.systemPolicyCookie)) { 
    cookieKeys = this.activeUserCookieName + '='; 
    cookieValues = 'Email=' + this.activeUserCookieValues.Email + '&'; 
    cookieValues += 'UserId=' + this.activeUserCookieValues.UserId; 
    cookieKeys += encodeURIComponent(cookieValues) + cookieDelimiter; 
    cookieKeys += 'domain=' + this.activeUserCookieDomain + cookieDelimiter + cookiePath; 
    document.cookie = cookieKeys; 
    document.location.href = document.location.protocol + '//' + document.location.host + '/User/Landing/'; 
} else { 
    alert('System policies are missing, please login online.'); 
    document.location.href = document.location.protocol + '//' + document.location.host; 
} 

},

Le bloc de code suivant doit supprimer le cookie créé ci-dessus, qui ne fonctionne pas.

logout: function() { 
"use strict"; 
var cookies = cookieArray(), 
    name; 
for (name in cookies) { 
    if (name != null && (this.systemPolicyCookie.toString() 
     .toLowerCase() !== name.toString() 
     .toLowerCase())) { 
     document.cookie = name + '="";-1; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; 
    } 
} 
document.location.href = document.location.protocol + '//' + document.location.host; 

},

La fonction cookieArray() retourne une liste de tous les cookies, qui est comme suit:

var cookieArray = function() { 
"use strict"; 
var cookies = {}, 
counter, 
split, 
nameValue; 
if (document.cookie && document.cookie !== '') { 
    split = document.cookie.split(';'); 
    for (counter = 0; counter < split.length; counter++) { 
     nameValue = split[counter].split("="); 
     nameValue[0] = nameValue[0].replace(/^ /, ''); 
     cookies[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]); 
    } 
} 
return cookies; 

Pourriez-vous me aider à obtenir le code de suppression des cookies de travail, sinon je devra fermer le navigateur (mauvais Ux)

Répondre

0

Quel navigateur utilisez-vous? Autant que je sache, IE met en cache les cookies, ils seront donc supprimés jusqu'à ce que vous redémarriez votre navigateur. Je ne suis pas sûr si FireFox ou Chrome font de même

Avez-vous essayé de tester votre code dans Chrome et/ou FireFox?

+0

Oui FF est mon navigateur principal ici. Je l'ai testé sur chrome, FF, IE. – Rahul

Questions connexes