SECURITY_ERR:openDatabase上的DOM Exception 18

我有一个使用WebSQL进行存储的基于Web的Android应用程序。 出于某种原因,调用openDatabase (响应button单击),导致带有消息"SECURITY_ERR: DOM Exception 18"DOMException

请注意,我没有使用PhoneGap。

我在这里问的主要问题是 :openDatabase上DOMException 18的可能原因什么?

一些更多的细节 :只有当数据库不存在时才会发生这种exception。 如果它已经存在,它按预期工作。 使得openDatabase调用的函数在应用程序的另一部分中使用,并且工作得很好。

我到目前为止所尝试的是

  • 减less数据库的大小 – 不应该是一个问题,因为它是由应用程序的另一部分创build的。
  • 我已经检查了外部存储的权限 – 再次,不应该是一个问题。
  • 我读了一个地方,USB电缆插入可能会导致这个问题 – 而不是在这种情况下造成的。

编辑:这是这个命令的样子:

 db = openDatabase('my_database', '1.0', 'My database description', 5*1024*1024, function() {}); 

Solutions Collecting From Web of "SECURITY_ERR:openDatabase上的DOM Exception 18"

我发现它与数据库允许的大小有关。 如果您尝试在iOS上打开一个大于50mb的数据库,则会出现此错误。

根据规范 ,这只是两个原因

  • 如果请求违反策略决定(例如,如果用户代理被configuration为不允许页面打开数据库),则用户代理可能会引发SECURITY_ERRexception,而不是返回数据库对象。

  • 如果origin不是一个scheme / host / port元组,则抛出一个SECURITY_ERRexception