Un error CORS es una decisión del navegador sobre una petición cross-origin concreta, no un fallo genérico de conectividad. Empieza por origin, URL destino, método y modo de credenciales exactos; después inspecciona los headers de la respuesta real, incluidas variantes de CDN/caché.
Captura la petición que falla
Registra Origin, destino, método, status, mensaje de consola y si envía cookies/Authorization. “Blocked by CORS” no basta para elegir solución.
Revisa el preflight cuando exista
OPTIONS debe llegar a la ruta correcta y devolver método/headers permitidos. Un 301, 403 o HTML cacheado puede fallar antes de la petición real.
Define un origen permitido preciso
Con credenciales, wildcard no es válido. Devuelve scheme+host esperado y habilita credenciales solo donde sean necesarias.
Localiza qué capa controla los headers
Aplicación, nginx, CDN, gateway y plugin pueden añadir o eliminar CORS. Valores duplicados o contradictorios rompen igual que su ausencia.
Haz segura la variación de caché
Si la respuesta cambia por Origin, la caché debe respetarlo. El edge no puede reutilizar un Allow-Origin de otra web. Revisa también `Vary: Origin` cuando la respuesta dependa del origen solicitado.
Prueba la ruta real en navegador
curl muestra headers pero no aplica la política CORS del navegador. Repite con mismo origin, método y credenciales del checkout o frontend.
Si el endpoint hace timeout en vez de responder CORS, pasa al diagnóstico 504; si responde el backend equivocado, verifica DNS tras migración.