Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro no console do navegador: "DOMException / The user denied permission to access the database" (IndexedDB)

Olá pessoal!

Ao executar o código desta aula (abaixo), o navegador retorna o erro: "DOMException /The user denied permission to access the database".

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">  
</head>
<body>
    <script>
        var openRequest = window.indexedDB.open('aluraframe',1);

        openRequest.onupgradeneeded = e => {
            console.log('Cria ou altera um banco já existente');
        };

        openRequest.onsuccess = e => {
            console.log('Conexão obtida com sucesso');
        };

        openRequest.onerror = e => {
            console.log(e.target.error);
            console.log(e.target.error.message);

        };
    </script>
</body>

Para conseguir criar/obter conexão, fez-se necessária a seguinte configuração: habilitar (em "chrome://settings/content/cookies") a opção "Block third-party cookies (Prevent third-party websites from saving and reading cookie data)".

Gostaria de saber se haveria uma solução melhor, visto que não gostaria de deixar esta opção habilitada.

Obs: este erro ocorreu no sistema Linux (ubuntu) / navegador Chromium; não citei esta informação até agora para que os colegas com outro SO / navegador, porém com o mesmo erro, também utilizem as informações deste tópico como tentativa de solução (para não ficarem horas pesquisando como este que vos escreve ficou huahuahua).

Atenciosamente.

3 respostas
solução!

Oi Elías, tudo bem?

Pelo que andei lendo nas Issues do próprio Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=735904&q=Can%27t%20access%20IndexedDB&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified

Cookie é usado como termo na interface, indicando "tudo que permite armazenamento" no navegador. Incluindo IndexedDB, Cookies, LocalStorage, etc.

Se isso estiver correto, então, não tem outro jeito mesmo :(

De alguma forma, talvez seja possível usar alguma biblioteca que simule o indexedDB e parece mesmo que alguém já pensou nisso: https://www.npmjs.com/package/fake-indexeddb

É para Node, mas quem sabe não funcione no navegador também :)

Olá Wanderson!

Obrigado por mais um retorno.

Isso do cookie ser uma nomenclatura geral para armazenamento no navegador faz muito sentido.

Quando fizer o curso de Node.js, vou conferir mais detalhadamente o fake IndexedDB.

Obs: Isso de fake no dia 1º de abril deixou espaço para dúvidas hahaha

Valeu!

Hehehehe! 1º de Abril :)

Mas o fake é fake mesmo. É verdade esse bilhete :)

Bons estudo Elías! Precisando, estamos por aqui!