CORS (Cross-Origin Resource Sharing) é
um mecanismo que utiliza cabeçalhos HTTP para
permitir que um navegador acesse recursos de uma
origem diferente da que o carregou. Os cabeçalhos
CORS, como Access-Control-Allow-Origin, são
definidos pelo servidor para indicar ao navegador
quais origens são permitidas. Sem o CORS, a política de segurança do navegador bloqueia requisi
ções de origens cruzadas iniciadas por scripts, por
exemplo, utilizando as APIs “XMLHttpRequest”
e “Fetch API”.
Isso significa que um aplicativo web, que faz uso dessas APIs, só poderá fazer solicitações para recursos de mesma origem para a qual foi carrega do, a menos que a resposta da outra origem inclua os cabeçalhos CORS corretos.
Considere o seguinte cenário sobre CORS: Um desenvolvedor implementou uma API REST em Django, contendo a seguinte configuração de CORS:
Esse serviço foi publicado em um servidor (backend) que está hospedado em https://api.servidor. com. Uma aplicação cliente (frontend) hospedada em https://app.cliente.com tenta acessar dados do servidor via Fetch API com o seguinte código:
Mas recebe o erro no console do navegador:
Com base no contexto CORS e considerando boas práticas sobre a configuração das origens, ajude o desenvolvedor a identificar o problema, indicando qual é a alternativa correta:
Isso significa que um aplicativo web, que faz uso dessas APIs, só poderá fazer solicitações para recursos de mesma origem para a qual foi carrega do, a menos que a resposta da outra origem inclua os cabeçalhos CORS corretos.
Considere o seguinte cenário sobre CORS: Um desenvolvedor implementou uma API REST em Django, contendo a seguinte configuração de CORS:
Esse serviço foi publicado em um servidor (backend) que está hospedado em https://api.servidor. com. Uma aplicação cliente (frontend) hospedada em https://app.cliente.com tenta acessar dados do servidor via Fetch API com o seguinte código:
Mas recebe o erro no console do navegador:
Com base no contexto CORS e considerando boas práticas sobre a configuração das origens, ajude o desenvolvedor a identificar o problema, indicando qual é a alternativa correta: