SecurityError: операция небезопасна-окно.история.pushState()


Я получаю эту ошибку в консоли Firefox: SecurityError: The operation is insecure и виновата функция HTML5: window.history.pushState(), Когда я пытаюсь загрузить что-то с AJAX. Предполагается загрузить некоторые данные, но Javascript перестает выполняться при ошибке.

Мне интересно, почему это могло произойти. Это какая-то неправильная конфигурация сервера? Любая помощь будет оценена по достоинству.

Обновление: да, это была ошибка сервера с доменным именем, не совпадающим: http://en.wikipedia.org/wiki/Same-origin_policy

6 38

6 ответов:

Убедитесь, что вы следуете той же политике происхождения. Это означает тот же домен, тот же поддомен, тот же протокол (http vs https) и тот же порт.

Как pushState защищает от возможных подделок контента?

EDIT: как метко указал @robertc в своем комментарии, некоторые браузеры на самом деле реализуют несколько иные политики безопасности, когда источником является file:///. Не говоря уже о том, что вы можете столкнуться с проблемами при локальном тестировании с file:///, когда страница ожидает его выполняется из другого источника (и поэтому ваш pushState предполагает сценарии происхождения производства, а не сценарии localhost)

Мы испытали SecurityError: операция небезопасна когда пользователь отключил свои файлы cookie перед посещением нашего сайта, любые последующие запросы XHR, пытающиеся использовать сеанс, очевидно, потерпят неудачу и вызовут эту ошибку.

В моем случае я пропустил " www.- из url, который я нажимал. Это должно быть точное соответствие, если вы работаете над www.test.com, вы должны нажать на www.test.com , а не test.com

Вы должны попробовать не открывать файл с помощью метода Folder-explorer (т. е. file://), а открыть этот файл из http:// (т. е. http://yoursite.com/ из http://localhost/)

У меня была та же проблема, когда я вызвал другой файл javascript из файла, не указав "физический" адрес javascript. Я решил эту проблему, вызвав его таким же образом из html, например: "JS / archivo.js "вместо" archivo.js "

При создании PWA работник службы, используемый на сервере, отличном от https, также создает эту ошибку.