9

ストレージに WebSQL を使用する Web ベースの Android アプリがあります。何らかの理由で、openDatabaseある時点で (ボタンのクリックに応答して) を呼び出すDOMExceptionと、メッセージとともに が発生します"SECURITY_ERR: DOM Exception 18"

私は PhoneGap を使用していないことに注意してください。

ここで私が尋ねている主な質問は次のとおりです: DOMException 18 の考えられる原因は何openDatabaseですか?

詳細: この例外は、データベースがまだ存在しない場合にのみ発生します。すでに存在する場合は、期待どおりに機能します。呼び出しを行う関数openDatabaseは、アプリの別の部分で使用され、正常に動作します。

私がこれまでに試したこと

  • データベースのサイズを縮小する - アプリの別の部分によって作成されているため、問題になることはありません。
  • 外部ストレージのアクセス許可を確認しましたが、これも問題ではありません。
  • USB ケーブルが差し込まれているとこの問題が発生する可能性があることをどこかで読みましたが、この場合の原因ではありません。

編集: これはコマンドがどのように見えるかです:

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

2 に答える 2

2

データベースの許容サイズに関係していることがわかりました。iOS で 50 MB を超えるデータベースを開こうとすると、このエラーが発生します。

于 2013-04-04T05:38:06.120 に答える
1

仕様によると、それは2つだけによって引き起こされます

  • ユーザー エージェントは、要求がポリシーの決定に違反している場合 (たとえば、ページがデータベースを開くことを許可しないようにユーザー エージェントが構成されている場合)、Database オブジェクトを返す代わりに SECURITY_ERR 例外を発生させることがあります。

  • origin がスキーム/ホスト/ポートのタプルでない場合、SECURITY_ERR 例外をスローします

于 2013-01-26T05:17:37.990 に答える