Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Front-end

CORS ¿Qué es y cómo resolver un error de Cross-Origin Resource Sharing (CORS)?

Mônica Mazzochi Hillman
Mônica Mazzochi Hillman
03/10/2024

Compartir

Mira este artículo:
  1. ¿Qué es el CORS?

Introducción: el problema de CORS
Es probable que hayas experimentado la situación de intentar iniciar sesión en una aplicación, ingresas tus datos, haces clic en enviar y no sucede nada en la página. Lo primero que hace un desarrollador es inspeccionar la página y, a continuación, abrir la consola del navegador (presionando la tecla F12 o haciendo clic derecho y luego seleccionando "Inspeccionar").

Te encuentras con el error "blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, edge, https, chrome-untrusted." o un mensaje similar.

img 1

¿Pero sabes qué causa esto?
Política de misma origen: Same-origin policy
La política de misma origen (same-origin policy) es un mecanismo de seguridad que restringe cómo un documento o script de un origen puede interactuar con recursos de otro origen. ¿Y para qué sirve esto? Ayuda a evitar ataques maliciosos.

Dos URLs comparten el mismo origen si el protocolo, puerto (en caso de estar especificado) y host son los mismos. Considera la URL https://cursos.alura.com.br/category/front-end, comparemos posibles variaciones:

URLResultadoMotivo
https://cursos.alura.com.br/category/programacaoMismo OrigenSolo un camino diferente
https://cursos.alura.com.br/category/front-end/html-cssMismo OrigenSolo un camino diferente
http://cursos.alura.com.br/category/front-endError de CORSProtocolo diferente (HTTP)
https://cursos.alura.com.br:80/category/front-endError de CORSPuerta diferente (https:// es la puerta 443 estándar)
https://store.alura.com.br:80/category/front-endError de CORSHost Diferente

Pero, al analizar estas variaciones, ¿cómo lidiamos con situaciones en las que nuestro front-end necesita consumir una API con una URL diferente sin tener problemas con el CORS? Como en el caso de querer conectar una API que se ejecuta en el puerto 8000 con una aplicación React que se ejecuta en el puerto 3000.

Al enviar una solicitud a una API de un origen diferente, el servidor debe devolver un encabezado llamado Access-Control-Allow-Origin. En él, es necesario especificar los diferentes orígenes que estarán permitidos, por ejemplo:

Access-Control-Allow-Origin: http://localhost:3000/

Es posible permitir el acceso desde cualquier origen utilizando el símbolo asterisco, como se muestra a continuación:

Access-Control-Allow-Origin: *

Esto no es una medida recomendada, ya que permite que orígenes desconocidos accedan al servidor, a menos que sea intencional, como en el caso de una API pública.

¿Qué es el CORS?

CORS (Cross-origin Resource Sharing) es un mecanismo utilizado para agregar encabezados HTTP que indican a los navegadores que permitan a una aplicación web ejecutarse en un origen y acceder a recursos de otro origen diferente. Este tipo de acción se denomina una solicitud HTTP de origen cruzado.

Se utiliza para habilitar solicitudes entre sitios para llamadas XMLHttpRequest o FetchAPI (entre diferentes orígenes), fuentes web (@font en CSS), texturas WebGL y marcos de dibujos utilizando drawImage().

Para obtener más información sobre el protocolo HTTP y entender mejor el funcionamiento de CORS, tenemos diversos contenidos para ti:

  • https://app.aluracursos.com/course/http-base-internet
  • https://www.aluracursos.com/blog/http-desmitificando-el-protocolo
Mônica Mazzochi Hillman
Mônica Mazzochi Hillman

Bacharela em Tecnologias Digitais, especialista em User Experience e pós graduanda em Docência e Performance na Educação a Distância com experiência em suporte técnico de T.I e com tecnologias front-end. Atualmente é Tech Community Manager na Magalu Cloud e instrutora na Alura. Nas horas vagas gosta de assistir animes e produções da marvel, ouvir kpop e post-hardcore, jogar Valorant e TFT.

Artículo Anterior
Array en JavaScript
Siguiente Artículo
Benchmarking: ¿cuál es la relación entre la investigación de mercado y el éxito de un producto?

Ver otros artículos sobre Front-end

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast