Unha VPN non pode desactivar CORS, cambia a resposta
Un novo enderezo de saída non fai iguais dous orixes. Captura as cabeceiras de resposta en ambas as rutas e compáraas antes de culpar a aplicación de CORS.
Comeza separando dúas cousas que cambiaron á vez: a ruta de rede e a aplicación do navegador. Unha VPN cambia o enderezo de saída; non cambia a orixe da páxina, que se compón de esquema, host e porto. Se a petición agora ten éxito, algo da resposta cambiou, ou a propia petición. Determinar cal é toda a investigación.
CORS é un protocolo de cabeceiras que aplica o navegador, así que nada na ruta de rede pode desactivalo.
A orixe non é un enderezo IP
Unha orixe é un esquema, un host e un porto. Non é o enderezo do que saen os paquetes nin é o IP que ve o servidor. Por iso unha VPN pode cambiar cada enderezo observable e deixar a orixe idéntica. O navegador compara o Access-Control-Allow-Origin da resposta coa orixe da páxina, e o enderezo de saída nunca entra nesa comparación.
Así que unha extensión ou un proxy que parece arranxar un erro de CORS fai outra cousa: reescribe cabeceiras ou encamiña a petición para que xa non sexa doutra orixe. Ningunha das dúas é unha propiedade da VPN.
O que o navegador envía en realidade
Para unha petición doutra orixe que non é simple, o navegador envía primeiro unha precomprobación OPTIONS co método e as cabeceiras previstos. O servidor debe responder cos permisos que permite, e a petición real só segue se esa resposta cumpre as regras. Unha VPN cambia a ruta que transporta ambos os intercambios e pode cambiar o que responden os servizos intermedios. Non cambia a cadea de orixe nin o requisito de precomprobación.
Un cliente de liña de ordes normalmente non mostra nada diso. Pode non enviar a cabeceira Origin, a miúdo salta a precomprobación e pode levar credenciais distintas. Un corpo devolto a curl demostra que o servidor respondeu a curl.
Atopa a resposta que cambiou
Compara a resposta real por cada ruta, non só o código de estado. Mira as cabeceiras que levan permisos de CORS, o tipo de contido, calquera redirección e se unha variante de WAF ou CDN produciu unha páxina distinta. Un rexeitamento rexional, unha redirección de autenticación ou unha páxina de erro sen a cabeceira de permiso fallan no navegador aínda que parezan un erro de CORS. Son diferenzas da ruta de entrega, e son o que hai que documentar.
Captura as cabeceiras de resposta das dúas rutas e compáraas liña por liña. Se a única diferenza é a falta de Access-Control-Allow-Origin nunha páxina de erro, atopaches a causa.
Arranxa o servizo, non a aplicación
Cando o servizo é teu, declara explicitamente as orixes permitidas e as funcións da petición, e despois le os erros que producen o seu frontend e os seus intermediarios. Se non o fas, envía ao propietario do servizo unha comparación saneada. Nunca inclúas cookies, cabeceiras de autorización nin exportacións de sesión nese informe, porque son as credenciais que a política existe para protexer.
Evita as extensións do navegador que desactivan CORS. Cambian a fronteira de seguridade mentres ocultan a diferenza de resposta que había que explicar, e deixan o mesmo fallo para todos os demais usuarios.
Rexistra ambas as respostas, a orixe usada e a ruta seguida. Ese rexistro converte un rumor sobre VPN nun erro do servizo.