2
respostas

Não consigo carregar os vídeos na página

Após importar e exportar os arquivos, não consegui puxar os arquivos da API para a página do AluraPlay e aparece um erro no console: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Meu Código HTML:

<body>

    <header>

        <nav class="cabecalho">
            <a class="logo" href="./index.html"></a>

            <div class="cabecalho__pesquisar">

                <input type="search" placeholder="Pesquisar" id="pesquisar" class="pesquisar__input">
                <button class="pesquisar__botao">

            </div>

            <div class="cabecalho__icones">
                <a href="./pages/enviar-video.html" class="cabecalho__videos"></a>
            </div>
        </nav>

    </header>

    <ul class="videos__container" alt="videos alura" data-lista>

    </ul>
    <script src="js/mostrarVideos.js" type="module"></script>
</body>

</html>

Códigos JavaScript:

  1. Conecta API
async function listaVideos () {
    const conexao = await fetch ("http://localhost:3000/videos");
    const conexaoConvertida = await conexao.json();
    return conexaoConvertida
}

export const conectaAPI = {
    listaVideos
}
  1. Mostrar Vídeos
import { conectaAPI } from "conectaAPI"

const lista = document.querySelector('[data-lista]')

function constroiCard(titulo, descricao, url, imagem) {
    const video = document.createElement('li')
    video.className = 'videos__item'
    video.innerHTML = `<iframe width="100%" height="72%" src="${url}"
    title="${titulo}" frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
    allowfullscreen></iframe>
<div class="descricao-video">
    <img src="${imagem}" alt="logo canal alura">
    <h3>${titulo}</h3>
    <p>${descricao}</p>
</div>`

    return video
}

async function listaVideos() {
    const listaAPI = await conectaAPI.listaVideos()
    listaAPI.forEach(element => lista.appendChild(
        constroiCard(element.titulo, element.descricao, element.url, element.imagem))
    );
}

listaVideos()
2 respostas

Boa noite, Anna. Pelo erro que marca no seu console do navegador, acredito que o erro esteja no import e também vi o código e não vi nenhum erro. Voltando ao import, testa mudar a sua linha 1 do import { conectaAPI } from "conectaAPI" para:

import { conectaApi } from "./conectaApi.js";

O ./ para acessar o mesmo nível do repositório evita erros.

Problema: Pelo erro do console deve ser isso:

Requisições CORS devem apenas usar o esquema de URL HTTPS, mas a URL especificada pela requisição é de um tipo diferente. Isso geralmente ocorre >se a URL especifica um arquivo local, usando uma URL file:///.

https://developer.mozilla.org/pt-BR/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp

Solução: vá na pasta do executável do navegador, e rode, por exemplo se for o chrome:

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

Abra o index.html e os vídeos aparecerão.