Ja, ich weiß, was Sie denken - noch eine CORS-Frage, aber diesmal bin ich ratlos.
Um zu beginnen, die eigentliche Fehlermeldung:
XMLHttpRequest kann http: //localhost/Foo.API/token nicht laden . Der Wert des Headers 'Access-Control-Allow-Origin' in der Antwort darf nicht der Platzhalter '*' sein, wenn der Anmeldeinformationsmodus der Anforderung 'include' ist . Origin ' http: // localhost: 5000 ' ist daher kein Zugriff gestattet. Der Anmeldeinformationsmodus von Anforderungen, die von XMLHttpRequest initiiert wurden, wird durch das Attribut withCredentials gesteuert.
Ich bin nicht sicher, was unter Anmeldeinformationsmodus "Einschließen" zu verstehen ist.
Wenn ich also die Anfrage beim Postboten ausführe, tritt kein solcher Fehler auf:
Wenn ich jedoch über meine AngularJS-Webanwendung auf dieselbe Anfrage zugreife, bin ich von diesem Fehler überrascht. Hier ist meine angualrjs Anfrage / Antwort. Wie Sie sehen werden, lautet die Antwort OK 200
, aber ich erhalte immer noch den CORS-Fehler:
Fiddler Anfrage und Antwort:
Das folgende Bild zeigt die Anforderung und Antwort vom Web-Front-End an die API
Basierend auf all den anderen Posts, die ich online gelesen habe, scheint es , als würde ich das Richtige tun. Deshalb kann ich den Fehler nicht verstehen. Zum Schluss hier der Code, den ich in angualrjs (Login Factory) verwende:
CORS-Implementierung in API - Referenzzwecke:
Methode 1 verwendet:
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);
}
}
Methode 2 verwendet:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
Vielen Dank im Voraus!
*
- also macht die Serverseite CORS falsch - oh, und der Postbote funktioniert, weil Es ist keine Cross-Origin-Anfrage