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 carregado, 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:
O erro ocorre porque o Django está incluindo o cabeçalho Access-Control-Allow-Credentials na resposta. Para corrigir, deve-se configurar o CORS_ALLOW_CREDENTIALS para conter a URL do cliente como conteúdo ao invés do valor “True” .
O erro ocorre porque servidor está incluindo o cabeçalho Access-Control-Allow-Origin com valor ‘*’, o que não é permitido quando o cliente envia credenciais. Para corrigir, deve-se remover a configuração CORS_ALLOW_ALL_ORIGINS e adicionar CORS_ALLOWED_ORIGINS com a URL do cliente como conteúdo.
O erro é causado porque o servidor está configurado com CORS_ALLOW_ALL_ ORIGINS = True e o cliente está encaminhando a URL de origem igual a “*”. Para corrigir, deve-se remover a configuração CORS_ALLOW_ALL_ORIGINS e adicionar CORS_ALLOWED_ORIGINS com a URL do cliente como conteúdo.
O erro ocorre porque o cliente está enviando cookies de autenticação (credentials: “include”) e o servidor está configurado com CORS_ALLOW_ALL_ORIGINS = True, o que faz com que o cabeçalho Access-Control-Allow-Origin seja “*”. Para corrigir, deve-se adicionar a configuração CORS_ALLOWED_ORIGINS com a URL do cliente e manter CORS_ALLOW_ALL_ORIGINS = True para aceitar múltiplas origens.