Como defino o cabeçalho Access-Control-Allow-Origin para que eu possa usar fontes da web do meu subdomínio no 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
Respostas:
O Nginx deve ser compilado com o http://wiki.nginx.org/NginxHttpHeadersModule (padrão no Ubuntu e em algumas outras distribuições do Linux). Então você pode fazer isso
fonte
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 cabeçalhos de controle de acesso e controle de acesso) para expor seus cabeçalhos personalizados e / ou 'não simples' a solicitações de ajax.- http://www.html5rocks.com/en/tutorials/cors/
Configura para outros servidores da web http://enable-cors.org/server.html
fonte
if
no nginx - até o manual oficial o desencoraja .always
opções a todos,add_header
para que os cabeçalhos sejam adicionados também para respostas que não sejam 200. Desde o nginx 1.7.5: nginx.org/en/docs/http/ngx_http_headers_module.htmlAqui está o artigo que escrevi que evita parte da duplicação do GET | POST. Isso deve levar você ao CORS no Nginx.
o controle de acesso nginx permite a origem
Aqui está o snippet de amostra da postagem:
fonte
204 No content
conforme parecer mais apropriado.Em primeiro lugar, deixe-me dizer que a resposta @hellvinz está funcionando para mim:
No entanto, eu decidi responder a essa pergunta com uma resposta separada, pois só consegui colocar essa solução em funcionamento depois de dedicar mais dez horas à procura de uma solução.
Parece que o Nginx não define nenhum tipo MIME de fonte (correto) por padrão. Seguindo essa tuorial , descobri que poderia adicionar o seguinte:
Para o meu
etc/nginx/mime.types
arquivo. Como indicado, a solução acima funcionou.fonte
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 minha amostra abaixo
fonte
Em alguns casos, você precisa usar
add_header
diretivasalways
para cobrir todos os códigos de resposta HTTP.Da documentação :
fonte
No meu caso, usando o Rails 5, a única solução de trabalho foi adicionar a
rack-cors
gema. Igual a:in / Gemfile
em config / initializers / cors.rb
fonte: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
fonte