Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

374
Visualizações
Verifique si la miniatura de Youtube existe usando la búsqueda de JavaScript

Sé que preguntas como esa ya se han hecho muchas veces, pero aún no pude encontrar una solución o incluso una explicación para eso.

Trabajo en un proyecto que necesita la mejor resolución posible en las miniaturas de YouTube. Usé la siguiente URL https://i.ytimg.com/vi/VIDEOID/maxresdefault.jpg , sin embargo, descubrí que en raras ocasiones esto no funciona y obtengo una imagen de marcador de posición y un estado de 404, atrás. En ese caso, me gustaría usar https://i.ytimg.com/vi/VIDEOID/hqdefault.jpg .

Para verificar si existe una imagen, traté de hacer una solicitud de búsqueda usando JavaScript:

 const url = "https://i.ytimg.com/vi/VIDEOID/hqdefault.jpg" fetch(url).then(res => console.log(res.status))

Pero recibo un error que indica que falta el CORS-Header 'Access-Control-Allow-Origin'. Intenté configurarlo y varios otros encabezados que encontré, pero fue en vano. Solo funciona si envío la solicitud en modo no cors, pero el estado siempre es 0 y parece que también faltan todos los demás datos.

También probé la solicitud en Postman donde funcionó e incluso copié el JavaScript-Fetch-Snipped que Postman me dio:

 var requestOptions = { method: 'GET', redirect: 'follow' }; fetch("https://i.ytimg.com/vi/VIDEOID/maxresdefault.jpg", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error));

Leí que este es un problema del servidor y Youtube lo está restringiendo, pero ¿por qué funciona en Postman y por qué funciona cuando se usa <cfhttp> en ColdFusion? Además, el código de estado incluso aparece en la consola dentro del mensaje CORS-Error...

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Por qué? explicado:

La política CORS se implementa en los navegadores para permitir compartir recursos entre sitios web y evitar que los sitios web se ataquen entre sí:

  • SOP (política del mismo origen) evita que los sitios web se ataquen entre sí, pero no permite que se compartan entre orígenes.
  • CORS (intercambio de recursos de origen cruzado) relaja las restricciones SOP, pero requiere encabezados/configuración de servidor específicos.

Estas políticas solo se aplican dentro de un navegador. Presumiblemente, Postman y Coldfusion funcionan porque realizan solicitudes HTTP directas fuera del contexto de un script de navegador. Lo que lleva a cómo solucionar las restricciones de CORS...

Soluciones:

3 formas de corregir el error de CORS y cómo funciona el encabezado Access-Control-Allow-Origin explica cómo eludir las restricciones de CORS. Todos funcionan manipulando los encabezados/origen de la solicitud:

  1. Extensión del navegador. (No estoy seguro si esto todavía funciona en 2022. Solo funciona si el usuario instala la extensión del navegador).
  2. Proxy de solicitud de terceros. (El proxy vinculado en la demostración ahora está limitado debido al abuso).
  3. Cree su propio proxy.

Siendo realistas, la opción #3 es la única solución real. Los puntos finales de SvelteKit hacen que sea súper simple enviar solicitudes de proxy.

about 4 years ago · Juan Pablo Isaza Relatório

0

El siguiente código funciona correctamente para mí y siempre obtengo el estado 200 ok Se puede hacer una implementación similar

 //import fetch from 'node-fetch'; const fetch = require('node-fetch'); loaddata(); async function loaddata(){ var Headers="{headers: {'Access-Control-Allow-Origin': '*'}"; var requestOptions = { method: 'GET', redirect: 'follow', }; const response = await fetch('https://i.ytimg.com/vi/9DCwyuH29SI/hqdefault.jpg',requestOptions,Headers); console.log(response); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda