Abilitazione delle intestazioni CORS sui metodi OPTIONS per le chiamate REST cross-origin

Giulia Marino 80 Punti di reputazione
2026-10-02T16:03:37.7966667+00:00

Abbiamo alcune domande su come abilitare le intestazioni CORS sui metodi OPTIONS, poiché i nostri client browser hanno reso impossibile completare le chiamate REST cross-origin. Il browser segnala che non possiamo eseguire queste richieste perché manca l'intestazione CORS 'Access-Control-Allow-Origin' e, quando avviamo la chiamata, non ci consente di procedere senza che questa intestazione sia abilitata. Qualsiasi consiglio sarebbe molto apprezzato.

Windows per il lavoro | Windows 365 Enterprise
0 commenti Nessun commento

1 risposta

Ordina per: Più utili
  1. VPHAN 45,180 Punti di reputazione Consulente indipendente
    2026-10-02T16:45:26.7266667+00:00

    Ciao Giulia Marino,

    Se la tua API gira su Windows Server IIS, le richieste preflight di solito falliscono perché il default OPTIONSVerbHandler %SystemRoot%\System32\inetsrv\config\applicationHost.config in cattura OPTIONS i verbi prima che l'applicazione venga eseguita, oppure perché l'autenticazione IIS Windows respinge le richieste preflight anonime con un errore HTTP 401.2 Unauthorized . Per risolvere questo problema in sicurezza, installa il modulo ufficiale Microsoft IIS CORS (%SystemRoot%\System32\inetsrv\cors.dll), rimuovi OPTIONSVerbHandler all'interno della web.config sezione system.webServer/handlers sotto del tuo sito e configura la system.webServer/cors sezione con enabled="true". All'interno di quel cors blocco, aggiungi il tuo esplicito URL di origine client (impostando allowCredentials="true" se le tue chiamate REST passano token di autenticazione o cookie) e elenca esplicitamente le header consentite e i metodi HTTP così IIS risponde ai OPTIONS controlli preflight prima dell'esecuzione dell'autenticazione.

    Se la tua API è costruita con ASP.NET Core e gestisce CORS nel codice applicativo, registra la tua policy usando Program.cs builder.Services.AddCors regole esplicite di origine, metodo e header, e posiziona app.UseCors() immediatamente dopo app.UseRouting() e strettamente prima app.UseAuthentication() e app.UseAuthorization() affinché le OPTIONS richieste anonime di preflight abbiano successo prima dei controlli di autorizzazione. In alternativa, se la tua API è ospitata su Azure App Service, puoi configurare le origini consentite direttamente nel portale Azure nel menu CORS, che istruisce il load balancer front-end di Azure a rispondere OPTIONS automaticamente alle richieste; tuttavia, poiché il CORS della piattaforma Azure sovrascrive il codice CORS a livello applicativo, dovresti abilitare CORS sia nel portale Azure che nella configurazione della tua applicazione, non in entrambi contemporaneamente.

    Spero che questa risposta ti abbia dato qualche informazione utile. Se è così, premi "accetta risposta". Se hai domande, sentiti libero di lasciare un commento.

    VPHAN

    La risposta è stata utile?

    0 commenti Nessun commento

Risposta

Le risposte possono essere contrassegnate come "Accettata" dall'autore della domanda e "Consigliata" dai moderatori, in modo da consentire agli utenti di sapere che la risposta ha risolto il problema dell'autore.