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

332
Visualizações
La API de Github devuelve un error CORS cuando se usa create-react-app

Estoy tratando de descargar la última versión de un repositorio privado específico. Puedo recopilar información utilizando esta solicitud GET:

 const handleDownload = async () => { const token = "{Very secret token not for StackOverflow}"; const owner = {company}; const response = await fetch( `https://api.github.com/repos/${owner}/${repo}/releases/latest`, { //mode: 'no-cors', headers: { Authorization: 'Bearer ' + token, }, } ); const log = await response.json(); console.log(log); }

Esta llamada devuelve algunos datos, incluida la propiedad 'zipball_url', de donde creo que proviene mi descarga. Sin embargo, si trato de realizar una solicitud a esta URL (incluido mi token), recibo un desagradable error de CORS:

Acceso para buscar en 'https://codeload.github.com/{company}/{reponame}/legacy.zip/refs/tags/1.1.7?token={secret token}' (redireccionado desde 'https:// api.github.com/repos/{company}/{reponame}/zipball/1.1.7') del origen 'http://localhost:3000' ha sido bloqueado por la política de CORS: la respuesta a la solicitud de verificación previa no pasa el acceso comprobación de control: no hay ningún encabezado 'Access-Control-Allow-Origin' en el recurso solicitado. Si una respuesta opaca satisface sus necesidades, establezca el modo de la solicitud en 'no-cors' para obtener el recurso con CORS deshabilitado.

Los documentos de la API de Github no me están ayudando mucho. ¿Alguien puede explicarme cómo solucionar esto?

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

0

zipball_url simplemente redirige al subdominio codeload.github.com y Github no permite el acceso público a CORS.

Si desea que el usuario descargue el archivo, simplemente use zipball_url directamente en un elemento <a download>

 const [ zipUrl, setZipUrl ] = useState(null) const downloadRef = useRef(null) const getLatestRelease = async () => { // this is greatly simplified with no error handling for brevity const res = await fetch(yourGithubUrl) return (await res.json()).zipball_url } useEffect(() => { getLatestRelease().then(setZipUrl) }, []) useEffect(() => { // trigger download if (zipUrl) { downloadRef.current.click() } }, [ zipUrl ]) return zipUrl && ( <a download ref={downloadRef} href={zipUrl} > Download </a> )

Otra opción es usar window.open(zipball_url) pero eso abrirá una nueva pestaña.

about 4 years ago · Juan Pablo Isaza Relatório

0

También recibí el mismo error: { "mensaje": "No encontrado", "documentación_url": "https://docs.github.com/rest/reference/repos#download-a-repository-archive" }

y se resolvió cuando me registré en la siguiente URL, se resolvió:

Para iniciar sesión, use un navegador web para abrir la página https://microsoft.com/devicelogin e ingrese el código XXXXXXXXXXX para autenticarse.

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