未捕获的错误:SECURITY_ERR:DOM当我尝试设置一个cookie时出现exception18

当我尝试使用此 jQuery插件设置cookie时,Chrome的开发人员工具窗口中出现以下错误:

未捕获错误:SECURITY_ERR:DOMexception18

这个错误是什么意思,我该如何解决? 当我使用这个 jQuery插件时,我得到了同样的错误。

您最有可能通过file:// URIscheme在本地文件上使用此方法,该scheme不能设置Cookie。 把它放在本地服务器上,这样你就可以使用http://localhost

我在本地开发HTML5时也遇到了这个问题。 我有图像和getImageData函数的问题。 最后,我发现可以用–allow-file-access-from-file命令开关来启动chrome,这样可以摆脱这种保护安全性。 唯一的问题是它使你的浏览器不太安全,你不能有一个chrome实例的标志和另一个没有标志。

您也可以通过用内联Base64表示replace图像来“解决”这个问题:

  img.src =“data:image / gif; base64,R0lGODlhCwALAIAAAAAA3pn / ZiH5BAEAAAEALAAAAAALAAsAAAIUhA + hkcuO4lmNVindo7qyrIXiGBYAOw ==”;

有用的,当你不打算在网上发布的页面,而是只在本地机器上使用它。

面对与JavaScript webworkers玩相同的情况。 不幸的是,Chrome不允许访问存储在本地文件中的javascript工作人员。

下面一种使用本地存储的解决方法是使用--allow-file-access-from-files (最后是s )运行Chrome,但只允许使用一个Chrome实例,这对我来说不是太方便。 由于这个原因,我使用Chrome Canary,允许文件访问。

BTW在Firefox中没有这样的问题。

如果您尝试使用数据URIscheme创buildWeb Worker,则会popup此错误消息。

 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

使用历史API时,我遇到了这个问题。

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

即使使用本地服务器(本地主机),也要将“http://”添加到您的URL中,以便您具有类似于:

 http://localhost... 

我并不是完全乐意通过–allow-file-access-from-file解决scheme,因为我使用Chrome作为我的主要浏览器,对于我打开的这个漏洞并不满意。

现在我使用加纳利(铬testing版)为我的发展与旗帜上。 而我的真正的博客仅仅是Chrome版本:两个浏览器不共享标志!

如果在获得许可之前使用新的(仅限于webkit)通知function,还可能会收到此错误。

第一次运行:

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

后来运行:

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

请求权限function需要由用户引起的事件触发,否则不会显示。

当我使用ASP.NET MVC返回一个FileResult时,我在移动Safari中遇到了这个错误。 所以,

 return File(returnFilePath, contentType, fileName); 

会给移动Safari的错误,在哪里

 return File(returnFilePath, contentType); 

不会。

我甚至不记得我为什么认为我在做什么是一个好主意。 试图聪明我猜。