【发布时间】:2012-04-08 07:00:36
【问题描述】:
在 iOS 5.1 (iPad) 上运行 Safari,我的 JavaScript 代码抛出以下异常:
SECURITY_ERR:Dom 异常 18:试图突破 用户代理的安全策略
...每当我打电话给document.cookie
现在这是一个通过正确 URL 访问的远程托管网站。所有桌面浏览器都运行良好,这只影响我 iPad 上的 Safari。我试图用谷歌搜索该错误,但我只是得到对调用本地文件(file://)的引用,因为它是一个远程网站,所以我没有这样做。
有什么想法吗?
【问题讨论】:
-
在 5.1 中进行了一些更改,这些更改改变了 cookie、LocalStorage 和 WebDB 等内容的存储方式。在移动项目中使用 localStorage 和 WebDB 时,我遇到了同样的错误。当我使用 localStorage 时,我在 xCode 中看到显示 2 个不同 AppID 的输出,我认为这可能与您遇到的类似。
-
好的,这很奇怪。我在 iPad 上强制使用 Safari(双击主页按钮,然后按住 Safari 图标),然后重新打开 Safari,没有错误。现在工作正常,典型! #叹息
-
是的,我也很奇怪,我的“旧”应用程序在 5.1 中运行良好,直到我删除了该应用程序并重新安装。从那时起,该应用程序就被烤了,不会做任何事情。
-
我支持 Sunday Ironfoot 所说的话,除了我通过 PhoneGap 调用 window.openDatabase() 来解决这个问题。但是,如果我强制关闭应用程序并再次运行,它可以正常工作并且数据库可以正常工作。 (或者我在 5.1 更改之前仍然安装了一个数据库,并且正在重新使用它。)
-
+1 投票重新打开,因为我认为找到此问题的答案将有助于未来的访问者,因为该问题可能不像最初出现的那样本地化。 @SundayIronfoot 的第二条评论是一个很好的解决方案,但不是永久的解决方案。
标签: javascript ios ipad safari domexception