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
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)
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.
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
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/
)
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"
lors de la création d'une PWA, un travailleur de service utilisé sur un serveur non https génère également cette erreur.