【问题标题】:iPad Safari iOS - SECURITY_ERR: Dom Exception 18 when accessing "document.cookie"iPad Safari iOS - SECURITY_ERR:访问“document.cookie”时出现 Dom 异常 18
【发布时间】: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


【解决方案1】:
  1. 启用cookie?可能是 cookie 被阻止了。
  2. 协议不匹配?例如 https 页面中的 Http 脚本。
  3. 到大 cookie 大小?
  4. cookie 值中有非法字符?
  5. 您使用的是 iOS UIWebView 吗?它可以是非 uri 方案协议(又名 file://)
  6. 您是否尝试从 iframe 获取 cookie?

检查所有这些,有时它像魔术一样奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2011-07-27
    • 2015-02-19
    • 2011-02-11
    • 1970-01-01
    • 2014-07-03
    • 2012-04-19
    相关资源
    最近更新 更多