Aqui está um copiar/colar bem rápido que você pode usar quando precisar definir cabeçalhos Access-Control-Allow-Origin em uma configuração Apache, ou em seu arquivo .htaccess.
Primeiro, apenas um lembrete rápido sobre Access-Control-Allow-Origin:
Por razões de segurança, os navegadores restringem solicitações HTTP com origem iniciadas de dentro de scripts. Por exemplo, XMLHttpRequest segue a mesma política. Assim, uma aplicação web usando XMLHttpRequest só poderia fazer solicitações HTTP para seu próprio domínio. Para melhorar as aplicações web, os desenvolvedores perguntaram a fornecedores de navegadores se poderiam permitir que XMLHttpRequest fizesse solicitações entre domínios.
[…]
CORS dá aos servidores web controle de acesso de domínio cruzado, o que permite transferência de dados entre domínios seguros.
– Access-Control-Allow-Origin
Assim, para usá-lo, você precisa definir os cabeçalhos corretos. Em seu .htaccess ou na configuração do seu servidor web Apache, adicione cabeçalhos como estes.
Header Set Access-Control-Allow-Origin "https://your.external.resource.tld"
O código acima permitiria que o site que envia esse cabeçalho solicitasse recursos (como solicitações de AJAX ou Webfonts) a partir do domínio “https: //your.external.resource.tld“. Cuidado com o protocolo, pois, nesse caso, ele só permitirá solicitações HTTPS. Solicitações HTTP ainda estariam bloqueadas.
Se você quiser desativar completamente o CORS (o que eu não recomendo, mas é útil para teste):
Header Set Access-Control-Allow-Origin "*"
Mas, como mencionado acima, é mais seguro definir o Access-Control-Allow-Origin para conter a lista de domínios da qual o aplicativo pode solicitar dados (ou enviar dados).
Se você tiver vários domínios e quiser definir um cabeçalho CORS com base nesse domínio, pode usar um truque legal como este:
SetEnvIf Origin "http(s)?://(www\.)?(google.com|staging.google.com|development.google.com)quot; AccessControlAllowOrigin=$0 Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Porque só pode haver um domínio CORS no cabeçalho – você vai precisar ser criativo, se quiser usar isso em vários domínios.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/set-access-control-allow-origin-cors-headers-apache-vhost-htaccess/