2017-09-25 6 views
1

Ich habe ein Problem, das sich in verschiedenen Szenarien je nach Benutzer darstellt.Uncaught DOMException: Fehler beim Ausführen von 'pushState' auf 'History':

Gruppe A: Wenn scheinbar ausgewählte Benutzer in die Homepage geladen werden und auf einen Navigationsanker klicken, der mit AJAX geladen werden soll und history.pushState ('', '', destinationUrl) verwenden; Sie erhalten keine Antwort. In einer Fehlermeldung in der Konsole:

Uncaught DOMException: Failed to execute ‘pushState’ on ‘History’: A history state object with URL ‘ http://example.net/foo ’ cannot be created in a document with origin ‘ http://www.example.net ’ and URL ‘ http://www.example.net/

Basierend auf Suchanfrage dachte ich, das Problem mit www in example.net/foo nicht wäre. Ich habe die Navigationsanker auf "http://www.example.net/foo" aktualisiert.

Dieser Fest das Problem für die Gruppe A, aber das gleiche Problem für die größere Benutzerbasis Gruppe B mit einer ähnlichen Fehler erstellt:

Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state object with URL ' http://www.example.net/foo ' cannot be created in a document with origin ' http://example.net ' and URL ' http://example.net/ '.

für die Gruppe B die URL Diskrepanz invertiert. Das Problem scheint für beide Gruppen browserunabhängig zu sein. Die Website verwendet Craft CMS.

Irgendeine Richtung oder Lösungen zu dem, was passieren könnte, wie kann ich das für beide Gruppen beheben?

+1

Ändern Sie Ihre Serversoftware, um Benutzer an eine einzige Domäne weiterzuleiten. Zum Beispiel könnten Sie mit Apache mod_rewrite verwenden, um alle URLs, die als example.com eingegeben wurden, auf www.example.com umzuleiten oder umgekehrt, je nachdem, was Sie mögen. Oder in Javascript bauen Sie die Ziel-URL auf der Grundlage der aktuellen Domain –

Antwort

1

Dank @Patrick Evans. Die Empfehlung, mod_rewrite zu verwenden, führte mich hier: https://httpd.apache.org/docs/2.4/rewrite/remapping.html#canonicalhost

Ich habe schließlich die "if" -Richtlinienempfehlung verwendet, aber auch mod_rewrite getestet und es hat auch funktioniert.

<If "%{HTTP_HOST} != 'www.example.net'"> 
     Redirect "/" "http://www.example.net/" 
    </If> 
Verwandte Themen