

Habilitar CORS en nginx
Debido a que el protocolo HTTP está en desuso y algunas empresas como Google califican negativo las páginas sin HTTPS es deber de los desarrolladores actualizar las aplicaciones con un nivel de seguridad decente o alternativas para conectar aplicaciones que por su naturaleza no cuentan con ese protocolo; aunque muchos comentaran que no es buena práctica en algunos casos es necesario conectarse con aplicaciones que no utilizan dicho protocolo, para ello tenemos CORS.
Esta tecnología nos permite "controlar" los recursos cruzados. En nuestro caso tuvimos la necesidad de interconectar una APP móvil fabricada por nosotros en Ionic 5 y hacerla convivir con un Odoo 14 EE. Con la versión de ambas en producción, es difícil encontrar versiones de librerías (Usamos JSONRPC con Angular 12) que nos eviten tareas maratónicas para hacerlas funcionar 'transparentemente' sin modificar decenas de líneas de código y así evitar 'romper' las aplicaciones, afortunadamente encontramos en la red la solución para hacerlo desde nuestro proxy inverso (NGINX) el bloque de configuración para esto se muestra a continuación:
server {
server_name 127.0.0.1:8069;
location / {
proxy_pass http://127.0.0.1:8069/;
proxy_redirect off;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
}
}
¡Advertencia! Utilice está técnica bajo su responsabilidad, algunos parámetros publicados pueden afectar el nivel de seguridad de sus aplicaciones.
Fuente: Codize
Últimas publicaciones


Lo que nadie te cuenta a la hora de contratar un ERP

Implementación de Odoo ERP Estándar hecha por QUADIT

¿Cuánto tiempo toma implementar Odoo con QUADIT?

Portal de auto facturación CFDI 4.0 para Odoo versión 19 Enterprise.

Nuevas características de Odoo 19: La nueva versión de Odoo llega el próximo mes de Septiembre 2025 con un montón de novedades

¿Qué novedades nos trae la versión Odoo 18?

Novedades Odoo 17

¿Qué nos trae de nuevo Odoo 16?
