¿Puede algo en mi configuración de Nginx implicar por qué mi backend no envía el encabezado 'Access-Control-Allow-Origin' en la solicitud POST?

¿Puede algo en mi configuración de Nginx implicar por qué mi backend no envía el encabezado 'Access-Control-Allow-Origin' en la solicitud POST?

*Edición 1: El error parece ser solo con POSTsolicitudes

Tengo un sitio web frontend en localhost. Hay una página de registro enlocalhost/register

El sitio web llama a una función de backend para registrar a un usuario enlocalhost:8080/api/register

Utilizo Axios para PUBLICAR el nombre de usuario y la contraseña. El navegador envía dos solicitudes: solicitud previa al vuelo de OPCIONES y luego la solicitud POST.

El usuario se creó correctamente, sin embargo, el navegador arroja un error para la solicitud POST:

Reason: CORS header ‘Access-Control-Allow-Origin’ missing

Y de hecho falta en la respuesta al POST. Suponiendo que mi archivo backend cors esté configurado correctamente, ¿podría el problema deberse a la combinación de mi configuración de Docker + Nginx que lo bloquea o a enviar los encabezados a un lugar incorrecto?

Esta es mi configuración de nginx:

server {
    listen 8080;
    index index.php index.html;    
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/public;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {        
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
}

  server {    
    listen       80;       
      location / {      
      proxy_pass      http://node:3000;
      
    }
  }

y esta es mi docker-compose.yml:

networks:
    mynetwork:
        driver: bridge

services:
    nginx:
        image: nginx:stable-alpine
        container_name: nginx
        ports:
            - "8080:8080"
            - "80:80"            
        volumes:            
            - ./php:/var/www/html 
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
            
        depends_on:
            - php
            - node
        networks:
            - mynetwork
    
    php:        
        build:
            context: ./php
            dockerfile: Dockerfile
        container_name: php
        user: "1000:1000"
        volumes:
            - ./php:/var/www/html
        ports:
            - "9000:9000"
        networks:
            - mynetwork

    node:
        build:
            context: ./react
            dockerfile: Dockerfile
        container_name: next        
        volumes:
            - ./react:/var/www/html                
        ports:
            - "3000:3000"       

        networks:
            - mynetwork


           

**Edición 2:

El backend es Laravel y tiene un middleware CORS que se supone que se encarga de ello. Y, de hecho, parece estar funcionando porque GETuna OPTIONSsolicitud pasa sin error, solo la POSTsolicitud arroja este error.

Este es el archivo de configuración CORS ( cors.php) en Laravel:

'paths' => ['api/*', 'sanctum/csrf-cookie'],

'allowed_methods' => ['*'],

'allowed_origins' => ['http://localhost'],

'allowed_origins_patterns' => ['*'],

'allowed_headers' => ['*'],

'exposed_headers' => [],

'max_age' => 0,

'supports_credentials' => true

información relacionada