javascript - Error no detectado: SECURITY_ERR: DOM Exception 18 cuando intento establecer una cookie
jquery html (9)
Este error aparece, si intenta crear un trabajador web con el esquema de URI de datos.
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'');
No está permitido según el estándar: http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dom-worker
Recibo el siguiente error en la ventana de las herramientas para desarrolladores de Chrome cuando intento establecer una cookie usando this plugin jQuery:
Error no detectado: SECURITY_ERR: DOM Exception 18
¿Qué significa este error y cómo puedo solucionarlo? Obtengo el mismo error cuando uso this plugin jQuery.
Frente a la misma situación jugando con webworkers JavaScript. Lamentablemente, Chrome no permite el acceso a los trabajadores de Javascript almacenados en un archivo local.
Un tipo de solución a continuación que se --allow-file-access-from-files
almacenamiento local es ejecutar Chrome con --allow-file-access-from-files
(con s
al final), pero solo se permite una instancia de Chrome, lo cual no es demasiado conveniente para mí. Por esta razón, estoy usando Chrome Canary, con acceso a archivos permitido.
Por cierto, en Firefox no hay tal problema.
He estado obteniendo ese error en el safari móvil cuando uso ASP.NET MVC para devolver un FileResult con la sobrecarga que devuelve un archivo con un nombre de archivo diferente al original. Asi que,
return File(returnFilePath, contentType, fileName);
daría el error en el safari móvil, donde como
return File(returnFilePath, contentType);
no lo haría
Ni siquiera recuerdo por qué pensé que lo que estaba haciendo era una buena idea. Tratando de ser inteligente, supongo.
No estaba completamente satisfecho con la solución --allow-file-access-from-file, porque estoy usando Chrome como mi navegador principal, y no estaba muy contento con esta brecha que estaba abriendo.
Ahora estoy usando Canary (la versión beta de Chrome) para mi desarrollo con la bandera activada. Y la mera versión de Chrome para mis blogs reales: ¡los dos navegadores no comparten la bandera!
También puede "corregir" esto reemplazando la imagen con su representación en línea Base64:
img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw=="; Es útil cuando no tiene la intención de publicar la página en la web, sino que la usa solo en máquinas locales.
También se puede recibir este error si se usa la nueva función de notificación (hasta el momento sólo webkit) antes de obtener el permiso.
Primer intento:
<!-- Get permission -->
<button onclick="webkitNotifications.requestPermission();">Enable Notifications</button>
Ejecutar más tarde:
// Display Notification:
window.webkitNotifications.createNotification(''image'', ''Title'', ''Body'').show();
Las funciones de permiso de solicitud deben activarse a partir de un evento causado por el usuario, de lo contrario no se mostrará.
También tuve este problema al desarrollar HTML5 en local. Tuve problemas con las imágenes y la función getImageData. Finalmente, descubrí que uno puede iniciar Chrome con el parámetro de comando --allow-file-access-from-file, que elimina esta seguridad de protección. Lo único es que hace que su navegador sea menos seguro, y no puede tener una instancia de Chrome con la bandera encendida y otra sin la bandera.
Tuve este problema al usar la API de historial.
window.history.pushState(null, null, URL);
Incluso con un servidor local (localhost), desea agregar ''http: //'' a su URL para que tenga algo similar a:
http://localhost...
Lo más probable es que esté utilizando esto en un archivo local a través del esquema file://
URI, que no puede tener cookies establecidas. Colóquelo en un servidor local para que pueda usar http://localhost
.