¿Cómo configuro el encabezado Access-Control-Allow-Origin para poder usar fuentes web de mi subdominio en mi dominio principal?
Notas:
Encontrará ejemplos de este y otros encabezados para la mayoría de los servidores HTTP en los proyectos de configuraciones de servidor HTML5BP https://github.com/h5bp/server-configs
Respuestas:
Nginx debe compilarse con http://wiki.nginx.org/NginxHttpHeadersModule (predeterminado en Ubuntu y algunas otras distribuciones de Linux). Entonces puedes hacer esto
fuente
Una respuesta más actualizada:
fuente: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
También es posible que desee agregar
Access-Control-Expose-Headers
(en el mismo formato que Access-Control-Allow-Headers) para exponer sus encabezados personalizados y / o no simples a las solicitudes de ajax.- http://www.html5rocks.com/en/tutorials/cors/
Configuraciones para otros servidores web http://enable-cors.org/server.html
fuente
if
en nginx, incluso el manual oficial lo desalienta .always
opción a todosadd_header
para que también se agreguen encabezados para las respuestas que no sean 200. Desde nginx 1.7.5Aquí está el artículo que escribí que evita la duplicación de GET | POST. Debería ponerte en marcha con CORS en Nginx.
el control de acceso nginx permite el origen
Aquí está el fragmento de muestra de la publicación:
fuente
204 No content
ya que parece más apropiado.En primer lugar, déjame decirte que la respuesta de @hellvinz está funcionando para mí:
Sin embargo, he decidido responder a esta pregunta con una respuesta separada, ya que solo logré hacer que esta solución funcionara después de dedicar unas diez horas más a buscar una solución.
Parece que Nginx no define ningún tipo de fuente MIME (correcta) de forma predeterminada. Siguiendo este tuorial descubrí que podía agregar lo siguiente:
A mi
etc/nginx/mime.types
archivo Como se indicó, la solución anterior funcionó.fuente
La directiva add_header tradicional de Nginx no funciona con respuestas 4xx. Como todavía queremos agregarles encabezados personalizados, necesitamos instalar el módulo ngx_headers_more para poder usar la directiva more_set_headers, que también funciona con respuestas 4xx.
Luego use more_set_headers en el archivo nginx.conf, he pegado mi muestra a continuación
fuente
En algunos casos, debe usar
add_header
directivasalways
para cubrir todos los códigos de respuesta HTTP.De la documentación :
fuente
En mi caso, usando Rails 5, la única solución de trabajo ha sido agregar la
rack-cors
gema. Al igual que:en / Gemfile
en config / initializers / cors.rb
fuente: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
fuente