Ошибка нечистоты: SECURITY_ERR: исключение DOM 18, когда я пытаюсь установить файл cookie - программирование

Ошибка нечистоты: SECURITY_ERR: исключение DOM 18, когда я пытаюсь установить файл cookie

Я получаю следующую ошибку в окне инструментов разработчика Chrome, когда я пытаюсь установить cookie с помощью this плагин jQuery:

Непринятая ошибка: SECURITY_ERR: исключение DOM 18

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

Вы также можете "исправить" это, заменив изображение своим встроенным представлением Base64:

img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
Полезно, если вы не собираетесь публиковать страницу в Интернете, а используете ее только на локальных машинах.

Ответ 4

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

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

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

Ответ 5

Эта ошибка появляется, если вы пытаетесь создать веб-исполнителя с помощью схемы 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

Ответ 6

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

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

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

http://localhost...

Ответ 7

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

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

Ответ 8

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

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

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

Поздний запуск:

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

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

Ответ 9

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

return File(returnFilePath, contentType, fileName);

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

return File(returnFilePath, contentType);

не будет.

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