1
resposta

Https Request bloqueado

Bom dia ! Estou com 2 erros no HttpsRequest, poderiam me auxiliar na solução :

Access to XMLHttpRequest at 'https://api-pacientes.herokuapp.com/pacientes' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. buscar-pacientes.js:11

`GET https://api-pacientes.herokuapp.com/pacientes net::ERR_FAILED 404 (Not Found)

buscar-pacientes.js

var botaoAdicionar = document.querySelector("#buscar-pacientes");

botaoAdicionar.addEventListener("click", function(){

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://api-pacientes.herokuapp.com/pacientes");
    xhr.addEventListener("load", function(){
        console.log(xhr.responseText);
    });

    xhr.send();
});
index.html
</head>
<body>

    <header>
        <div class="container">
            <h1 class="titulo">Aparecida Nutrição</h1>
        </div>
    </header>
    <main>
        <section class="container">
            <h2>Meus pacientes</h2>
            <label for="filtrar-tabela">Filtro:</label>
            <input type="text" name="filtro" id="filtrar-tabela" placeholder="Digite o nome do paciente ">
            <table>
                <thead>
                    <tr>
                        <th>Nome</th>
                        <th>Peso(kg)</th>
                        <th>Altura(m)</th>
                        <th>Gordura Corporal(%)</th>
                        <th>IMC</th>
                    </tr>
                </thead>
                <tbody id="tabela-pacientes">
                    <tr class="paciente" id="primeiro-paciente" >
                        <td class="info-nome">Paulo</td>
                        <td class="info-peso">100</td>
                        <td class="info-altura">2.00</td>
                        <td class="info-gordura">10</td>
                        <td class="info-imc">0</td>
                    </tr>

                    <tr class="paciente" >
                        <td class="info-nome">João</td>
                        <td class="info-peso">80</td>
                        <td class="info-altura">1.72</td>
                        <td class="info-gordura">40</td>
                        <td class="info-imc">0</td>
                    </tr>

                    <tr class="paciente" >
                        <td class="info-nome">Erica</td>
                        <td class="info-peso">54</td>
                        <td class="info-altura">1.64</td>
                        <td class="info-gordura">14</td>
                        <td class="info-imc">0</td>
                    </tr>

                    <tr class="paciente">
                        <td class="info-nome">Douglas</td>
                        <td class="info-peso">85</td>
                        <td class="info-altura">5.73</td>
                        <td class="info-gordura">24</td>
                        <td class="info-imc">0</td>
                    </tr>
                    <tr class="paciente" >
                        <td class="info-nome">Tatiana</td>
                        <td class="info-peso">46</td>
                        <td class="info-altura">1.55</td>
                        <td class="info-gordura">19</td>
                        <td class="info-imc">0</td>
                    </tr>
                </tbody>
            </table>
            <button id="buscar-pacientes" class="botao bto-principal">Buscar Paciente</button>
        </section>
    </main>
    <!--comandos de input de novos Pacientes-->
    <section class="container">
        <h2 id="titulo-form">Adicionar novo paciente</h2>
        <ul id="mensagens-erro"></ul>
        <form id="form-adiciona">
            <div class="grupo">
                <label for="nome">Nome:</label>
                <input id="nome" name="nome" type="text" placeholder="digite o nome do seu paciente" class="campo">
            </div>
            <div class="grupo">
                <label for="peso">Peso:</label>
                <input id="peso" name="peso" type="text" placeholder="digite o peso do seu paciente" class="campo campo-medio">
            </div>
            <div class="grupo">
                <label for="altura">Altura:</label>
                <input id="altura" name="altura" type="text" placeholder="digite a altura do seu paciente" class="campo campo-medio">
            </div>
            <div class="grupo">
                <label for="gordura">% de Gordura:</label>
                <input id="gordura" type="text" placeholder="digite a porcentagem de gordura do seu paciente" class="campo campo-medio">
            </div>

            <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button>
        </form>
    </section>
    <script src="js/calcula-imc.js"></script>
    <script src="js/form.js"></script>
    <script src="js/remover-paciente.js"></script>
    <script src="js/filtra.js"></script>
    <script src="js/buscar-pacientes.js"></script>
</body>
![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/932537/c2bd43aa-e3a1-4109-a6fd-718d98852e8d.png) ![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/932537/8dcaccca-87be-46ec-aed2-6fed30146d4c.png)

`

1 resposta

Oi Fabio, tudo bem?

Acredito que esteja com essa falha porque a Heroku teve uma mudança por conta dos planos gratuitos, então os links estão saindo do ar. Por isso, a API não é encontrada.

Fizemos uma API que você pode usar no projeto e você pode acessá-la nesse link. É só colocar no mesmo lugar que antiga ficando da seguinte forma:

xhr.open("GET", "https://raw.githubusercontent.com/loresgarcia/Pacientes-API/master/pacientes.json");

Espero ter resolvido sua questão.

Caso ainda tenha alguma dúvida, me coloco à disposição!

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!