iPad Safari iOS — SECURITY_ERR: исключение Dom 18 при доступе к document.cookie

Запустив Safari на iOS 5.1 (iPad), мой код JavaScript выдает следующее исключение:

SECURITY_ERR: Исключение Dom 18: была предпринята попытка нарушить политику безопасности пользовательского агента.

... всякий раз, когда я звоню document.cookie

Теперь это удаленный веб-сайт, доступ к которому осуществляется через правильный URL-адрес. Все настольные браузеры работают нормально, это влияет только на Safari на моем iPad. Я попытался найти ошибку в Google, но я просто получаю ссылки на вызов локальных файлов (file://), которые я не делаю, поскольку это удаленный веб-сайт.

Любые идеи?


person Sunday Ironfoot    schedule 23.03.2012    source источник
comment
В 5.1 были внесены изменения, которые изменили способ и место хранения таких вещей, как файлы cookie, LocalStorage и WebDB. Я получаю ту же ошибку при работе с localStorage и WebDB в мобильном проекте. Я вижу вывод в xCode, который показывает 2 разных AppID, когда я работаю с localStorage, и я думаю, что это может быть похоже на то, что вы испытываете.   -  person Sage    schedule 23.03.2012
comment
Хорошо, это странно. Я запускаю Safari на iPad (дважды нажмите кнопку «Домой», затем удерживайте значок Safari), затем снова открыл Safari, и никаких ошибок. Теперь работает нормально, типичный! #вздох   -  person Sunday Ironfoot    schedule 23.03.2012
comment
Да, у меня тоже была странность, когда мое старое приложение отлично работало в 5.1, ДО ТОГО, как я удалил приложение и переустановил его. С этого момента приложение было поджарено и ничего не делало.   -  person Sage    schedule 26.03.2012
comment
Я согласен с тем, что говорит Сандей Айронфут, за исключением того, что я решаю проблему через PhoneGap, вызывая window.openDatabase(). Однако, если я принудительно закрою приложение и снова запущу его, оно будет работать нормально, и база данных будет работать. (Либо так, либо у меня все еще установлена ​​БД до изменений 5.1, и я возвращаюсь к ней.)   -  person Anthony    schedule 01.07.2012
comment
У меня была точно такая же проблема с таким же разрешением. У меня чуть не случился сердечный приступ, когда я пытался отлаживать запуск в производство.   -  person Brian Nickel♦    schedule 02.07.2012
comment
У вас есть дампы HTTP? Возможно, ваш файл cookie отправляется с флагом httpOnly.   -  person ndrix    schedule 15.07.2012
comment
+1 Голосование за повторное открытие, поскольку я думаю, что поиск ответа на этот вопрос поможет будущим посетителям, поскольку вопрос может быть не таким локализованным, как кажется на первый взгляд. Второй комментарий @SundayIronfoot — хороший обходной путь, но не постоянное решение.   -  person My Head Hurts    schedule 13.08.2012
comment
У меня такая же проблема с запуском моего веб-приложения на LG Smart TV. navigator.cookieEnabled возвращает true, но document.cookie выдает DOM-исключение 18.   -  person Patriicya    schedule 24.07.2017


Ответы (1)


  1. Включить куки? Возможно куки заблокированы.
  2. Несоответствие протокола? Http-скрипт на https-странице, например.
  3. Слишком большой размер файла cookie?
  4. Недопустимый символ в значении cookie?
  5. Вы используете iOS UIWebView? Это может быть протокол не схемы uri (также известный как файл://)
  6. Вы пытаетесь получить cookie из iframe?

Проверьте все это, иногда это странно, как по волшебству.

person Pinal    schedule 06.11.2013