Un error CORS és una decisió del navegador sobre una petició cross-origin concreta, no un error genèric de connectivitat. Comença per origin, URL destí, mètode i mode de credencials exactes; després inspecciona els headers de la resposta real, incloses variants de CDN/memòria cau.
Captura la petició que falla
Registra Origin, destí, mètode, status, missatge de consola i si envia cookies/Authorization. “Blocked by CORS” no basta per triar solució.
Revisa el preflight quan existeixi
OPTIONS ha d’arribar a la ruta correcta i retornar mètode/headers permesos. Un 301, 403 o HTML cachejat pot fallar abans de la petició real.
Defineix un origen permès precís
Amb credencials, wildcard no és vàlid. Retorna scheme+host esperat i habilita credencials només on siguin necessàries.
Localitza quina capa controla els headers
Aplicació, nginx, CDN, gateway i connector poden afegir o eliminar CORS. Valors duplicats o contradictoris trenquen igual que l’absència.
Fes segura la variació de memòria cau
Si la resposta canvia per Origin, la memòria cau ho ha de respectar. L’edge no pot reutilitzar un Allow-Origin d’un altre web. Revisa també `Vary: Origin` quan la resposta depengui de l’origen sol·licitat.
Prova la ruta real al navegador
curl mostra headers però no aplica la política CORS del navegador. Repeteix amb mateix origin, mètode i credencials del checkout o frontend.
Si l’endpoint fa timeout en lloc de respondre CORS, passa al diagnòstic 504; si respon el backend equivocat, verifica DNS després de migració.