SecurityError: операция небезопасна-окно.история.pushState()
Я получаю эту ошибку в консоли Firefox:SecurityError: The operation is insecure
и виновным является функция HTML5:window.history.pushState()
когда я пытаюсь загрузить что-то с AJAX. Предполагается загрузить некоторые данные, но Javascript перестает выполняться при ошибке.
мне интересно, почему это могло произойти. Это какая-то неправильная конфигурация сервера? Любая помощь будет оценена.
UPDATE: Да, это была ошибка сервера с именем домена, не соответствующим: http://en.wikipedia.org/wiki/Same-origin_policy
6 ответов
убедитесь, что вы следуете Та Же Политика Происхождения. Это означает тот же домен, тот же субдомен, тот же протокол (http vs https) и тот же порт.
как pushState защищает от потенциальных подделок контента?
EDIT: как @ robertc метко указал в своем комментарии, некоторые браузеры на самом деле реализуют немного разные политики безопасности, когда источник file:///
. Не говоря уже о том, что вы можете столкнуться с проблемами при локальном тестировании с помощью file:///
когда страница ожидает, что она работает из другого источника (и поэтому ваш pushState
предполагает сценарии происхождения производства, а не сценарии localhost)
на SecurityError: операция небезопасна когда пользователь отключил свои куки перед посещением нашего сайта, любые последующие запросы 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, также генерирует эту ошибку.