replacestate onpopstate event change javascript html5 url history pushstate

event - window onpopstate javascript



SecurityError: la operaciĆ³n no es segura-window.history.pushState() (6)

Recibo este error en la consola de Firefox: SecurityError: The operation is insecure y la culpable es la función HTML5: window.history.pushState() cuando intento cargar algo con AJAX. Se supone que carga algunos datos, pero Javascript deja de ejecutarse por error.

Me pregunto por qué esto puede estar pasando. ¿Es esto un error de configuración del servidor? Cualquier ayuda sería apreciada.

ACTUALIZACIÓN: Sí, fue un error del servidor con el nombre de dominio no coincidente: http://en.wikipedia.org/wiki/Same-origin_policy


Al crear un PWA, un trabajador de servicio que se usa en un servidor que no es https también genera este error.


Asegúrese de estar siguiendo la misma política de origen . Esto significa el mismo dominio, el mismo subdominio, el mismo protocolo (http vs https) y el mismo puerto.

¿Cómo protege pushState contra posibles falsificaciones de contenido?

EDITAR: Como @robertc señaló acertadamente en su comentario, algunos navegadores realmente implementan políticas de seguridad ligeramente diferentes cuando el origen es file:/// . Sin mencionar que puedes encontrar problemas cuando pruebas localmente con file:/// cuando la página espera que se ejecute desde un origen diferente (y así tu pushState asume escenarios de origen de producción, no escenarios de localhost)


Debería intentar no abrir el archivo con un método explorador de carpetas (es decir, file:// ), sino abrir ese archivo desde http:// (es decir, http://yoursite.com/ desde http://localhost/ )


En mi caso me faltaba ''www.'' desde la url que estaba empujando. Debe coincidir exactamente, si está trabajando en www.test.com , debe presionar en www.test.com y no en test.com


Experimentamos SecurityError: la operación no es segura cuando un usuario inhabilita sus cookies antes de visitar nuestro sitio, cualquier solicitud de XHR subsiguiente que intente usar la sesión obviamente fallará y causará este error.


Tuve el mismo problema cuando llamé a otro archivo javascript desde un archivo sin poner la dirección "física" de javascript. Lo resolví llamándolo de la misma manera desde el html, ejemplo: "JS / archivo.js" en lugar de "archivo.js"