3
respostas

Os vídeos não carregam

Boa tarde. Preciso de ajuda! Após finalizar os códigos, os vídeos não carregam. Já refiz duas vezes, mas não consigo encontrar o erro. Poderiam ajudar, por favor?

index.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>

conectaApi:

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

mostrarVideos:

import { conectaApi } from "./conectaApi.js";
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 (elemento => lista.appendChild(
    constroiCard(elemento.titulo, elemento.descricao, elemento.url, elemento.imagem)))}
listaVideos ();

MENSAGEM NO CONSOLE:


```  Access to script at 'file:///C:/Users/Eu/Desktop/Curso%20de%20TI/_Front%20End%20-%20Fase%203/aluraplay-requisicoes-main%20-%20APRENDENDO/js/mostrarVideos.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: chrome, chrome-extension, chrome-untrusted, data, http, https, isolated-app.Understand this errorAI
index.html:83 

GET file:///C:/Users/Eu/Desktop/Curso%20de%20TI/_Front%20End%20-%20Fase%203/aluraplay-requisicoes-main%20-%20APRENDENDO/js/mostrarVideos.js net::ERR_FAILED
3 respostas

Olá Rogério, boa tarde!

O erro de CORS que você está vendo geralmente ocorre quando você tenta acessar recursos de um servidor diferente do que está servindo sua página web. No seu caso, está tentando acessar um arquivo local (file://) enquanto a página está sendo servida de um servidor local (http://localhost). Para resolver isso, você pode tentar rodar um servidor local. Uma maneira simples de fazer isso é usando o VSCode com a extensão "Live Server".

Esse artigo explica o passo a passo de como instalar e iniciar o projeto com essa extensão.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Olá Mike, boa tarde. Obrigado pela iniciativa em me ajudar.

Tenho o Live Server instalado na máquina e já habilitei, mesmo assim os novos vídeos não aparecem. Na verdade sou leigo em tecnologia e não tenho ideia de como trocar de um arquivo local para um servidor local!?!?

Como eu posso fazer isto? Novamente obrigado.

Olá, Rogério. Como vai?

A mensagem no console sugere que o site não foi iniciado usando o Live Server, mas sim aberto diretamente através de um duplo clique no arquivo index.html.

Para iniciar usando a extensão é bem simples:

tela do vscode destacando as opções de se iniciar o projeto utilizando a extensão live server.

  1. Após iniciar a IDE, haverá uma opção na barra de baixo com a opção Go Live. Por padrão, ao clicar, ela já abre o projeto em um navegador, mas se não abrir, aparecerá uma mensagem no local do botão informando a porta onde o projeto está rodando, normalmente é na 5500. Então o link de acesso seria: http://localhost:5500.
  2. A segunda opção é clicar com o botão direito sobre o arquivo index.html, assim vai abrir um menu com a opção "Open with Live Server". Ela tem o mesmo comportamento de clicar no botão citado na primeira opção.

Tente dessa forma e caso precise de ajuda, não hesite em me chamar :)

Fico no aguardo e à disposição