Sì, so cosa stai pensando - ancora un'altra domanda CORS, ma questa volta sono perplesso.
Quindi, per iniziare, il messaggio di errore effettivo:
XMLHttpRequest non può caricare http: //localhost/Foo.API/token . Il valore dell'intestazione "Access-Control-Allow-Origin" nella risposta non deve essere il carattere jolly "*" quando la modalità delle credenziali della richiesta è "include" . L'accesso all'origine " http: // localhost: 5000 " non è pertanto consentito. La modalità delle credenziali delle richieste avviate da XMLHttpRequest è controllata dall'attributo withCredentials.
Non sono sicuro che cosa si intende per modalità credenziali sia "include" ?
Così, quando mi esibisco la richiesta in postino, provo nessun tale errore:
Ma quando accedo alla stessa richiesta tramite la mia app web angularjs, sono perplesso da questo errore. Ecco la mia richiesta / risposta angualrjs. Come vedrai la risposta è OK 200
, ma ricevo ancora l'errore CORS:
Richiesta e risposta di Fiddler:
L'immagine seguente mostra la richiesta e la risposta dal front-end Web all'API
Quindi, in base a tutti gli altri post che ho letto online, sembra che io stia facendo la cosa giusta, ecco perché non riesco a capire l'errore. Infine, ecco il codice che utilizzo all'interno di angualrjs (login factory):
Implementazione di CORS nell'API - Scopi di riferimento:
Metodo 1 utilizzato:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCrossSiteRequests(config);
}
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(cors);
}
}
Metodo 2 utilizzato:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
Molte grazie in anticipo!
*
- quindi, il lato server sta facendo CORS sbagliato - oh, e il postino funziona perché non è una richiesta di origine incrociata