Ho un'app Web con un front-end AngularJS e un back-end Web Api 2 e utilizza i token bearer per l'autenticazione.Web Api 2 Preflight richiesta CORS per token bearer
Tutto va bene in FireFox & IE, ma con Chrome, la mia richiesta di accesso iniziale è SOMETIMES pre-flight.
Ecco la chiamata dal servizio AngularJS:
$ http.post (http://localhost:55483/token
, dati, {headers: { 'Content-Type': '/ x-www-form-urlencoded applicazione'}}). successo (funzione (risposta) {...});
La richiesta di preflight viene respinta con un errore "Allow-Access-Control-Origin".
Tuttavia, se faccio di nuovo clic sul pulsante Login (inviando nuovamente la richiesta di cui sopra) tutto va bene.
Qualche idea su come impedire/trap/gestire questo?
PS: io uso la LOC
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
nel file ApplicationOAuthProvider.cs
per mettere il CORS consentono-header su richiesta/token, che funziona bene in IE, FireFox e talvolta in Chrome.
Hai aggiunto 'allowcors' all'avvio per' webapi'? –
Intendi questo LOC: app.UseCors (Microsoft.Owin.Cors.CorsOptions.AllowAll); Ho provato a mettere che in ma il compilatore dice: Owin.IAppBuilder' non contiene una definizione per '' UseCors – FancyNancy
Sì, sembra simile, ma potrebbe essere necessario includere qualche pacchetto NuGet per cors –