SecurityError: l'opération est non sécurisée - window.histoire.pushState()

j'obtiens cette erreur dans la Console de Firefox: SecurityError: The operation is insecure et le coupable est la fonctionnalité HTML5: window.history.pushState() quand j'essaie de charger quelque chose avec AJAX. Il est supposé charger quelques données mais Javascript arrête l'exécution sur l'erreur.

je me demande pourquoi cela peut arriver. Est-ce une mauvaise configuration du serveur? Toute aide serait appréciée.

mise à JOUR: Oui, c'était une erreur de serveur avec un nom de domaine ne correspond pas: http://en.wikipedia.org/wiki/Same-origin_policy

38
demandé sur Atadj 2012-11-12 21:49:19

6 réponses

assurez-vous de suivre la même Politique D'origine . Cela signifie même domaine, même sous-domaine, même protocole (http vs https) et même port.

comment pushState protège-t-elle contre la falsification de contenu?

éditer: comme @robertc à juste titre souligné dans son commentaire, certains navigateurs mettent en œuvre des politiques de sécurité légèrement différentes lorsque l'origine est file:/// . Ne pas mentionner que vous peut rencontrer des problèmes en testant localement avec file:/// quand la page s'attend à ce qu'il tourne d'une origine différente (et donc votre pushState suppose des scénarios d'origine de production, pas des scénarios d'origine locale)

34
répondu Matt 2017-05-23 11:46:13

nous avons connu le SecurityError: l'opération est non sécurisée quand un utilisateur désactivé leurs cookies avant de visiter notre site, toute XHR demandes ultérieures essayant d'utiliser la session serait évidemment échec et causer cette erreur.

6
répondu oliverguenther 2016-02-12 07:28:33

dans mon cas, je manquais le www."à partir de l'url que j'ai été faire. Il doit être identique, si vous travaillez sur www.test.com , vous devez pousser à www.test.com et non test.com

3
répondu Flo 2013-12-22 18:33:18

vous devriez essayer de ne pas ouvrir le fichier avec une méthode d'Explorateur de dossiers (i.e. file:// ), mais ouvrir ce fichier de http:// (i.e. http://yoursite.com/ de http://localhost/ )

2
répondu T.Todua 2014-06-04 16:10:54

j'ai eu le même problème quand appelé un autre fichier javascript à partir d'un fichier sans mettre l'adresse" physique " javascript. Je l'ai résolu en l'appelant de la même façon à partir de l'exemple html: "JS / archivo.js" au lieu de "archivo.js"

1
répondu hectorpyco 2015-02-19 17:27:28

lors de la création d'une PWA, un travailleur de service utilisé sur un serveur non https génère également cette erreur.

1
répondu Dror 2018-06-12 06:38:30