Uncaught Error: SECURITY_ERR: DOM Exception 18, когда я пытаюсь установить cookie - PullRequest
119 голосов
/ 24 апреля 2010

При попытке установить cookie с помощью this jQuery plugin появляется следующая ошибка:

Uncaught Error: SECURITY_ERR: исключение DOM 18

Что означает эта ошибка и как ее исправить? Я получаю ту же ошибку при использовании этого плагина jQuery.

Ответы [ 9 ]

150 голосов
/ 24 апреля 2010

Скорее всего, вы используете это в локальном файле по схеме file:// URI, для которой не могут быть установлены файлы cookie. Поместите его на локальный сервер, чтобы вы могли использовать http://localhost.

18 голосов
/ 12 марта 2011

У меня также была эта проблема при разработке HTML5 на локальном компьютере. У меня были проблемы с изображениями и функцией getImageData. Наконец, я обнаружил, что можно запустить Chrome с помощью командного переключателя --allow-file-access-from-file, который избавляет от этой защиты. Единственное, что делает ваш браузер менее безопасным, и вы не можете иметь один экземпляр Chrome с включенным флагом, а другой без флага.

11 голосов
/ 03 июня 2011

Вы также можете «исправить» это, заменив изображение встроенным представлением Base64: img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw=="; Полезно, когда вы не собираетесь публиковать страницу в Интернете, а используете ее только на локальных компьютерах.

10 голосов
/ 18 апреля 2012

Столкнулся с такой же ситуацией, играя с Javascript . К сожалению, Chrome не позволяет получить доступ к рабочим JavaScript, хранящимся в локальном файле.

Одним из способов обхода ниже при использовании локального хранилища является запуск Chrome с --allow-file-access-from-filess в конце), но разрешен только один экземпляр Chrome, что не слишком удобно для меня. По этой причине я использую Chrome Canary с разрешенным доступом к файлам.

Кстати, в Firefox такой проблемы нет.

5 голосов
/ 05 октября 2011

Эта ошибка появляется, если вы пытаетесь создать веб-работника со схемой URI данных.

var w = new Worker('data:text/javascript;charset=utf-8,onmessage%20%3D%20function()%20%7B%20postMessage(%22pong%22)%3B%20%7D'); w.postMessage('ping');

Это не разрешено согласно стандарту: http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-worker

4 голосов
/ 08 мая 2013

У меня была эта проблема при использовании истории API.

window.history.pushState(null, null, URL);

Даже с локальным сервером (localhost) вы хотите добавить 'http://' к вашему URL, чтобы у вас было что-то похожее на:

http://localhost...
3 голосов
/ 08 августа 2011

Я не был полностью доволен решением --allow-file-access-from-files, потому что я использую Chrome в качестве основного браузера, и не очень доволен открытием, которое я открывал.

Сейчас я использую Canary (бета-версию Chrome) для своей разработки с включенным флагом. И простая версия Chrome для моего реального ведения блога: два браузера не разделяют флаг!

2 голосов
/ 08 августа 2012

Эту ошибку также можно получить, если использовать новую (пока что только веб-набор) функцию уведомления до получения разрешения.

Первый запуск:

<!-- Get permission -->
<button onclick="webkitNotifications.requestPermission();">Enable Notifications</button>

Позже:

// Display Notification:
window.webkitNotifications.createNotification('image', 'Title', 'Body').show();

Функции разрешения запроса должны запускаться из события, вызванного пользователем, в противном случае оно не будет отображаться.

1 голос
/ 11 сентября 2012

Я получал эту ошибку в мобильном сафари при использовании ASP.NET MVC для возврата FileResult с перегрузкой, которая возвращает файл с именем файла, отличным от исходного. Таким образом,

return File(returnFilePath, contentType, fileName);

выдаст ошибку в мобильном сафари, где

return File(returnFilePath, contentType);

не будет.

Я даже не помню, почему я думал, что то, что я делал, было хорошей идеей. Я пытаюсь быть умным, наверное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...