Je remplace les cookies par localStorage sur les navigateurs pouvant le prendre en charge (toute personne autre que IE). Le problème est que site.com et www .site.com stockent leurs propres objets distincts LocalStorage. Je crois que www est considéré comme un sous-domaine (une décision stupide si vous me le demandez). Si une utilisateur était initialement sur site.com et décide de taper www .site.com lors de sa prochaine visite, toutes ses données personnelles seront inaccessibles. Comment faire en sorte que tous mes "sous-domaines" partagent le même localStorage que le domaine principal?
C'est comme ça que je l'utilise sur plusieurs domaines ...
J'espère que ça aide :)
Si vous utilisez les solutions iframe et postMessage uniquement pour ce problème particulier, je pense que le travail de stocker les données dans un cookie sans sous-domaine et moins) peut être moins fastidieux (à la fois en termes de code et de calcul). il n'est pas déjà dans le stockage local au chargement, récupérez-le dans le cookie} _.
Je suis d'accord avec les autres commentateurs cependant, il semble que cela devrait être une option spécifiable pour le stockage local, de sorte que les solutions de rechange ne soient pas nécessaires.
Je suggère de rediriger site.com vers www.site.com pour des raisons de cohérence et pour éviter des problèmes de ce type.
Pensez également à utiliser une solution multi-navigateurs telle que PersistJS pouvant utiliser le stockage natif de chaque navigateur.
J'utilise xdLocalStorage, il s'agit d'une bibliothèque JS légère qui implémente l'interface LocalStorage et prend en charge le stockage entre domaines à l'aide de la communication après message iframe.
Voici comment je l'ai résolu pour mon site web. J'ai redirigé toutes les pages sans www vers www.site.com. De cette façon, le stockage local de www.site.com sera toujours nécessaire.
Ajoutez ce qui suit à votre .htacess , (créez-en un si vous ne l'avez pas déjà) dans le répertoire racine
RewriteEngine On
RewriteCond %{HTTP_Host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]