webentwicklung-frage-antwort-db.com.de

Nicht erfasster Fehler: SECURITY_ERR: DOM-Ausnahme 18, wenn ich versuche, ein Cookie zu setzen

Wenn ich versuche, ein Cookie mit dem jQuery-Plugin this zu setzen, wird im Chrome-Entwickler-Tool-Fenster der folgende Fehler angezeigt:

Nicht erfasster Fehler: SECURITY_ERR: DOM-Ausnahme 18

Was bedeutet dieser Fehler und wie kann ich ihn beheben? Ich erhalte den gleichen Fehler, wenn ich this jQuery plugin verwende.

119
Pieter

Sie verwenden dies höchstwahrscheinlich für eine lokale Datei über das URI-Schema file://, Für die keine Cookies festgelegt werden können. Stellen Sie es auf einen lokalen Server, damit Sie http://localhost Verwenden können.

150
Eli Grey

Ich hatte dieses Problem auch beim Entwickeln von HTML5 in local. Ich hatte Probleme mit Bildern und der Funktion getImageData. Schließlich entdeckte ich, dass man chrome mit dem Befehlsschalter --allow-file-access-from-file starten kann, der diese Schutzsicherheit beseitigt. Das Einzige, was Ihren Browser weniger sicher macht, ist, dass Sie keine Instanz von chrome mit aktivierter und keine Instanz ohne aktivierte Flagge haben können.

18
alocaly

Sie können dies auch "korrigieren", indem Sie das Bild durch seine Inline-Base64-Darstellung ersetzen:

img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
11
Ibolit

Angesichts der gleichen Situation mit Javascript spielen Webworker . Leider erlaubt Chrome keinen Zugriff auf JavaScript-Worker, die in einer lokalen Datei gespeichert sind.

Eine der folgenden Problemumgehungen bei Verwendung eines lokalen Speichers besteht darin, Chrome mit --allow-file-access-from-files (Mit s am Ende) auszuführen, jedoch nur eine Instanz von Chrome. _ ist erlaubt, was für mich nicht allzu bequem ist. Aus diesem Grund verwende ich Chrome Canary mit Dateizugriff.

BTW in Firefox gibt es kein solches Problem.

10
Simo Endre

Dieser Fehler wird angezeigt, wenn Sie versuchen, einen Web-Worker mit einem Daten-URI-Schema zu erstellen.

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');

Es ist laut Standard nicht erlaubt: http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-worker

5
atimb

Ich hatte dieses Problem bei der Verwendung der Verlaufs-API.

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

Selbst mit einem lokalen Server (localhost) möchten Sie Ihrer URL "http: //" hinzufügen, damit Sie etwas Ähnliches haben wie:

http://localhost...
4
Mr_Pouet

Ich war nicht ganz glücklich mit dem --allow-file-access-from-files Lösung, weil ich Chrome als meinen primären Browser verwende und mit dieser Lücke, die ich öffnete, nicht wirklich zufrieden bin.

Jetzt verwende ich Canary (die chrome beta version)) für meine Entwicklung mit dem Flag on. Und die bloße Chrome version für mein echtes Blogging: die beiden Browser teilt die Flagge nicht!

3
alocaly

Man kann diesen Fehler auch erhalten, wenn man die neue Benachrichtigungsfunktion (bisher nur Webkit) verwendet, bevor man die Erlaubnis erhält.

Erster Lauf:

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

Später ausführen:

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

Die Anforderungsberechtigungsfunktionen müssen von einem vom Benutzer verursachten Ereignis ausgelöst werden, da sie sonst nicht angezeigt werden.

2

Ich habe diesen Fehler in Mobile Safari erhalten, als ich mit ASP.NET MVC ein FileResult mit der Überladung zurückgegeben habe, die eine Datei mit einem anderen Dateinamen als dem Original zurückgibt. So,

return File(returnFilePath, contentType, fileName);

würde den fehler in mobile safari geben, wo wie

return File(returnFilePath, contentType);

würde nicht.

Ich erinnere mich nicht einmal, warum ich dachte, was ich tat, war eine gute Idee. Ich denke, ich versuche klug zu sein.

1
anewcomer