3
respostas

Erro na atualização

Então, eu uso windows 10, então copiei e colei "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --disable-gpu --user-data-dir=~/chromeTemp, este trecho na "lupinha" barra de pesquisa e deu o seguinte erro: O Google Chrome não pode ler e gravar neste diretório de dados: ~/chromeTemp, disseram que se eu fizesse isto ia resolver meu problema na importação de dados do index deste projeto, e mesmo assim não consegui

3 respostas

Fala ai Gustavo, tudo bem? Porque você preciso fazer esse processo? O que está tentando fazer? Qual erro estava dando?

Consegue me passar mais detalhes? Assim ficaria mais fácil tentar lhe ajudar.

Fico no aguardo.

Eu uso o aplicativo Atom pros códigos, não sei se o problema é o aplicativo que eu uso. Mas é que eu já refiz todas as aulas do curso e baixei o projeto do zero, e os erros continuam no console quando vou importar negociações, tudo indica que o erro esta no index.html e no NegociacaoController.js

Index.Html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Negociações</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/bootstrap-theme.css">

</head>
<body class="container">

    <h1 class="text-center">Negociações</h1>

    <div id="mensagemView"></div>

    <form class="form" onsubmit="negociacaoController.adiciona(event)">

        <div class="form-group">
            <label for="data">Data</label>
            <input type="date" id="data" class="form-control" required autofocus/>
        </div>

        <div class="form-group">
            <label for="quantidade">Quantidade</label>
            <input type="number" min="1" step="1" id="quantidade" class="form-control" value="1" required/>
        </div>

        <div class="form-group">
            <label for="valor">Valor</label>
            <input id="valor" type="number" class="form-control"  min="0.01" step="0.01" value="0.0" required />
        </div>

        <button class="btn btn-primary" type="submit">Incluir</button>
    </form>

    <div class="text-center">

        <button onclick='negociacaoController.importaNegociacoes()' class="btn btn-primary text-center" type="button">
            Importar Negociações
        </button>

        <button onclick="negociacaoController.apaga()" class="btn btn-primary text-center" type="button">
            Apagar
        </button>
    </div>
    <br>
    <br>

    <div id="negociacoesView"></div>

    <script src="js/app/models/Negociacao.js"></script>
    <script src="js/app/controllers/NegociacaoController.js"></script>
    <script src="js/app/helpers/DateHelper.js"></script>
    <script src="js/app/models/ListaNegociacoes.js"></script>
    <script src="js/app/views/View.js"></script>
    <script src="js/app/views/NegociacoesView.js"></script>
    <script src="js/app/models/Mensagem.js"></script>
    <script src="js/app/views/MensagemView.js"></script>
    <script src="js/app/services/ProxyFactory.js"></script>
    <script src="js/app/helpers/Bind.js"></script>
    <script>
        let negociacaoController = new NegociacaoController();
    </script>

</body>
</html>

O restante dos Scripts já baixei e fiz as mesmas alterações que o professor das aulas, espero que eu tenha especificado bem o erro instrutor.

Erro que aparece no console: Access to XMLHttpRequest at 'file:///C:/Users/Gustavo/Desktop/Treinamento%20JavaScript/aluraframe/client/negociacoes/semana' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

NegociacaoController.js:47 NegociacaoController.js:54 GET file:///C:/Users/Gustavo/Desktop/Treinamento%20JavaScript/aluraframe/client/negociacoes/semana net::ERR_FAILED

NegociacaoController.js

class NegociacaoController {

    constructor() {

        let $ = document.querySelector.bind(document);

        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade');
        this._inputValor = $('#valor');

        this._listaNegociacoes = new Bind(
            new ListaNegociacoes(),
            new NegociacoesView($('#negociacoesView')),
            'adiciona', 'esvazia');

        this._mensagem = new Bind(
            new Mensagem(), new MensagemView($('#mensagemView')),
            'texto');
    }

    adiciona(event) {

        event.preventDefault();
        this._listaNegociacoes.adiciona(this._criaNegociacao());
        this._mensagem.texto = 'Negociação adicionada com sucesso';
        this._limpaFormulario();
    }

    importaNegociacoes() {

        let xhr = new XMLHttpRequest();

        xhr.open('GET', 'negociacoes/semana');

        xhr.onreadystatechange = () => {

            if(xhr.readyState == 4){

                if(xhr.status == 200){

                  JSON.parse(xhr.responseText)
                    .map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))
                    .forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
                    this._mensagemTexto = 'Negociações imnportadas com sucesso.';

                }else{
                    console.log(xhr.responseText);
                    this._mensagem.texto = 'Não foi possível obter as negociacoes da semana.';

                }
            }
        };

        xhr.send();

    }

    apaga() {

        this._listaNegociacoes.esvazia();
        this._mensagem.texto = 'Negociações apagadas com sucesso';
    }

    _criaNegociacao() {

        return new Negociacao(
            DateHelper.textoParaData(this._inputData.value),
            this._inputQuantidade.value,
            this._inputValor.value);
    }

    _limpaFormulario() {

        this._inputData.value = '';
        this._inputQuantidade.value = 1;
        this._inputValor.value = 0.0;
        this._inputData.focus();
    }
}