Quando um cabeçalho Access-Control-Allow-Origin
HTTP está ausente na resposta a uma simulação do CORS (compartilhamento de recursos de origem cruzada), isso significa:
- O servidor não suporta o CORS? Ou
- O servidor nega o acesso?
Se o servidor não suportar o CORS, parece óbvio que o cabeçalho estará ausente.
Mas se ele suporta CORS, significa que o acesso é negado?
E, inversamente, o que um servidor que implementa o CORS deve fazer para anunciar ao cliente que o acesso é negado por causa do CORS? Deve responder com um status como 403 Forbidden
?
Todas as fontes que encontrei explicam quais cabeçalhos são adicionados para permitir o acesso entre domínios, mas não explicam o que fazer para negar o acesso.
** Editar: pergunta indevida, é ruim, veja a explicação abaixo **
O foco da minha pergunta parece fora do tópico comparado ao que eu esperava.
De fato, uma resposta está focada na configuração do servidor, mas o que foi interessante para mim foi o protocolo sobre HTTP.
Para ser mais preciso, fiz a pergunta porque tentei acessar um servidor com uma solicitação cruzada e:
- O servidor não estava incluindo os cabeçalhos do CORS enquanto meu XMLHttpRequest os incluía
- o navegador aceitou solicitações cruzadas feitas por um
swf
media
- Eu verifiquei o referenciador da mídia e seu iframe era realmente diferente do destino das solicitações
- Eu nem sabia se o servidor implementou o CORS ou não
- Eu não possuo o servidor
Meu baixo nível de compreensão do CORS dentro do HTTP e o fato de um tipo de requisições cruzadas serem aceitas me levam a pensar se o servidor estava rejeitando meus pedidos e o que eu estava fazendo de errado.
Vou postar uma resposta, já que acredito ter resolvido isso desde então.