当我尝试使用this jQuery插件设置Cookie时,Chrome在开发人员工具窗口中出现以下错误:
未捕获错误:SECURITY_ERR:DOM异常18
这个错误意味着什么,我该如何解决?当我使用this jQuery插件时,我得到了同样的错误。
答案 0 :(得分:150)
您最有可能在file://
URI方案的本地文件上使用此方法,该方案无法设置Cookie。将其放在本地服务器上,以便您可以使用http://localhost
。
答案 1 :(得分:18)
我在本地开发HTML5时遇到了这个问题。 我有图像和getImageData函数的问题。 最后,我发现可以使用--allow-file-access-from-file命令开关启动chrome,从而摆脱这种保护安全性。 唯一的问题是它会使你的浏览器不那么安全,并且你不能有一个带有标志的chrome实例和没有标志的另一个。
答案 2 :(得分:11)
您还可以通过使用其内联Base64表示替换图像来“修复”此问题:
img.src= "data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==";
当您不打算在Web上发布页面时,但仅在本地计算机上使用它时很有用。
答案 3 :(得分:10)
面对与Javascript webworkers一样的情况。不幸的是,Chrome不允许访问存储在本地文件中的javascript worker。
下面使用本地存储的一种解决方法是使用--allow-file-access-from-files
运行Chrome(最后使用s
),但只允许使用一个Chrome实例,这对我来说不太方便。出于这个原因,我正在使用Chrome Canary,允许文件访问。
答案 4 :(得分:5)
如果您尝试使用数据URI方案创建Web工作程序,则会弹出此错误。
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
答案 5 :(得分:4)
使用历史记录API时遇到此问题。
window.history.pushState(null, null, URL);
即使使用本地服务器(localhost),您也希望在网址中添加“http://”,以便您有类似的内容:
http://localhost...
答案 6 :(得分:3)
我对--allow-file-access-from-files
解决方案并不完全满意,因为我使用Chrome作为我的主要浏览器,并且对于我正在打开的这个漏洞感到不满意。
现在我正在使用Canary(Chrome测试版)进行开发,并使用标记。 我的真实博客仅仅是Chrome版本:两个浏览器不共享旗帜!
答案 7 :(得分:2)
如果在获得许可之前使用新的(目前为止仅限webkit)通知功能,也会收到此错误。
首先运行:
<!-- Get permission -->
<button onclick="webkitNotifications.requestPermission();">Enable Notifications</button>
后来运行:
// Display Notification:
window.webkitNotifications.createNotification('image', 'Title', 'Body').show();
请求权限函数需要从用户引起的事件中触发,否则不会显示。
答案 8 :(得分:1)
当使用ASP.NET MVC返回带有重载的FileResult时,我在移动safari中遇到了这个错误,该重载返回的文件名与原始文件名不同。所以,
return File(returnFilePath, contentType, fileName);
会在移动版Safari中给出错误,其中
return File(returnFilePath, contentType);
不会。
我甚至不记得为什么我认为我在做什么是一个好主意。我猜是想要聪明一点。