Como faço para definir o cabeçalho Access-Control-Allow-Origin para que eu possa usar fontes da web do meu subdomínio no meu domínio principal?
Notas:
Você encontrará exemplos deste e de outros cabeçalhos para a maioria dos servidores HTTP nos projetos HTML5BP Server Configs https://github.com/h5bp/server-configs
O Nginx deve ser compilado com http://wiki.nginx.org/NginxHttpHeadersModule (padrão no Ubuntu e em algumas outras distribuições Linux). Então você pode fazer isso
coringas curinga
Uma resposta mais atualizada:
fonte: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
Você também pode adicionar
Access-Control-Expose-Headers
(no mesmo formato que Access-Control-Allow-Headers) para expor seus cabeçalhos personalizados e/ou 'não simples' a solicitações ajax.-http://www.html5rocks.com/en/tutorials/cors/
Configurações para outros servidores web http://enable-cors.org/server.html
Acesso-Controle-Permitir-Credenciais
Se você estiver usando Access-Control-Allow-Credentials com sua solicitação CORS, você desejará que a fiação do cabeçalho do cors em seu local se pareça com isso. Como a origem deve corresponder ao domínio do cliente, o curinga não funciona.
Aqui está o artigo que escrevi que evita algumas duplicações para GET|POST. Isso deve levá-lo a usar CORS no Nginx.
controle de acesso nginx permitir origem
Aqui está o trecho de amostra do post:
Em alguns casos, você precisa usar
add_header
diretivas comalways
para cobrir todos os códigos de resposta HTTP.Da documentação :
Em primeiro lugar, deixe-me dizer que a resposta do @hellvinz está funcionando para mim:
No entanto, decidi responder a essa pergunta com uma resposta separada, pois só consegui fazer essa solução funcionar depois de mais dez horas procurando uma solução.
Parece que o Nginx não define nenhum tipo MIME de fonte (correto) por padrão. Seguindo este tutorial , descobri que poderia adicionar o seguinte:
Para o meu
etc/nginx/mime.types
arquivo. Como afirmado, a solução acima funcionou.A diretiva add_header tradicional do Nginx não funciona com respostas 4xx. Como ainda queremos adicionar cabeçalhos personalizados a eles, precisamos instalar o módulo ngx_headers_more para poder usar a diretiva more_set_headers, que também funciona com respostas 4xx.
Em seguida, use more_set_headers no arquivo nginx.conf, colei meu exemplo abaixo
No meu caso, usando Rails 5, a única solução funcional foi adicionar a
rack-cors
gem. Igual a:em /Gemfile
em config/initializers/cors.rb
fonte: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
No meu caso, adicionar o Controle de Acesso com um cabeçalho curinga não funcionou. Acabei tendo que definir o cabeçalho do proxy com meu host de aplicativos da web e o cabeçalho de controle de acesso com o conjunto de origem. Aqui está um exemplo que funcionou para mim: