Oui, je sais ce que vous pensez - encore une autre question CORS, mais cette fois je suis perplexe.
Donc, pour commencer, le message d'erreur réel:
XMLHttpRequest ne peut pas charger http: //localhost/Foo.API/token . La valeur de l'en-tête «Access-Control-Allow-Origin» dans la réponse ne doit pas être le caractère générique «*» lorsque le mode des informations d' identification de la demande est «inclure» . L' accès à l' origine ' http: // localhost: 5000 ' n'est donc pas autorisé. Le mode d'informations d'identification des demandes initiées par XMLHttpRequest est contrôlé par l'attribut withCredentials.
Je ne suis pas sûr que le mode d'identification signifie «inclure» ?
Ainsi, lorsque j'effectue la demande dans Postman, je ne rencontre pas une telle erreur:
Mais lorsque j'accède à la même requête via mon application Web angularjs, je suis perplexe face à cette erreur. Voici ma demande / réponse angualrjs. Comme vous le verrez, la réponse est OK 200
, mais je reçois toujours l'erreur CORS:
Demande et réponse de Fiddler:
L'image suivante montre la demande et la réponse du front-end Web à l'API
Donc, sur la base de tous les autres articles que j'ai lus en ligne, il semble que je fais la bonne chose, c'est pourquoi je ne comprends pas l'erreur. Enfin, voici le code que j'utilise dans angualrjs (login factory):
Implémentation CORS dans l'API - Objectifs de référence:
Méthode 1 utilisée:
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);
}
}
Méthode 2 utilisée:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
Merci d'avance!
*
- donc, le côté serveur fait mal CORS - oh, et le facteur fonctionne parce que ce n'est pas une demande d'origine croisée