Ich ersetze Cookies durch localStorage in Browsern, die dies unterstützen können (außer IE). Das Problem ist site.com und www . site.com speichert ihre eigenen separaten localStorage-Objekte. Ich glaube, www wird als Subdomain angesehen (eine dumme Entscheidung, wenn Sie mich fragen). Wenn ein Benutzer ursprünglich auf site.com war und sich entscheidet, www einzugeben . Bei ihrem nächsten Besuch auf site.com sind alle ihre persönlichen Daten nicht zugänglich. Wie kann ich erreichen, dass alle meine "Subdomains" denselben localStorage wie die Hauptdomain verwenden?
95
Antworten:
So verwende ich es domänenübergreifend ...
Ich hoffe, es hilft :)
quelle
site.com
/www.site.com
solange sich Subdomains auf derselben übergeordneten Domain befindenWenn Sie die iframe- und postMessage-Lösung nur für dieses spezielle Problem verwenden, ist es möglicherweise weniger aufwendig (sowohl in Bezug auf den Code als auch in Bezug auf die Berechnung), die Daten nur in einem Cookie ohne Subdomain zu speichern, und falls dies noch nicht geschehen ist Nehmen Sie es in localStorage beim Laden aus dem Cookie .
Vorteile:
Nachteile:
Ich stimme jedoch anderen Kommentatoren zu. Dies scheint eine spezifizierbare Option für localStorage zu sein, sodass keine Umgehungen erforderlich sind.
quelle
Ich empfehle, site.com aus Gründen der Konsistenz und zur Vermeidung solcher Probleme auf www.site.com umzuleiten.
Erwägen Sie außerdem die Verwendung einer browserübergreifenden Lösung wie PersistJS , die jeden nativen Browser-Speicher verwenden kann.
quelle
Location
, des<meta>
HTML-Tags oder sogar von JS überwindow.location
.In der Hauptdomäne auf Cookie setzen -
Nehmen Sie dann die Daten aus einer beliebigen Haupt- oder Unterdomäne und legen Sie sie im localStorage fest
quelle
Ich verwende xdLocalStorage. Dies ist eine kompakte js-Bibliothek, die die LocalStorage-Schnittstelle implementiert und domänenübergreifenden Speicher mithilfe der iframe-Post-Message-Kommunikation unterstützt. (AngularJS-Unterstützung)
https://github.com/ofirdagan/cross-domain-local-storage
quelle
Diese Art der Lösung verursacht viele solche Probleme. Aus Gründen der Konsistenz und der Suchmaschinenoptimierung ist die Umleitung auf die Hauptdomäne die beste Lösung.
Führen Sie die Umleitung auf Serverebene durch
So leiten Sie mit Nginx www zu Non-www um
https://www.digitalocean.com/community/tutorials/how-to-redirect-www-to-non-www-with-nginx-on-centos-7
oder eine andere Ebene wie Route 53, wenn verwendet
quelle
So habe ich es für meine Website gelöst. Ich habe alle Seiten ohne www auf www.site.com umgeleitet. Auf diese Weise wird immer der lokale Speicher von www.site.com benötigt
Fügen Sie Folgendes zu Ihrer .htacess hinzu (erstellen Sie eine, falls Sie sie noch nicht haben) im Stammverzeichnis
quelle