J'ai une API de base de données net fonctionnant sur localhost: 5000. J'ai ajoutédot net core api avec CORS rejetant toujours la demande
services.AddCors();
à la méthode ConfigureServices et
app.UseCors(builder => builder.WithOrigins("http://localhost:3000")
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod());
la méthode Configurer dans StartUp.
J'ai un client js qui tente
return fetch('http://localhost:5000/api/Authorization', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
UserName: userName,
Password: password,
})}).then((response) => response.json())
.then((responseJson) => {return responseJson.userIsAdmin});
}
Mais quand ce dernier est exécuté, le navigateur refuse, en disant:
Non 'Access-Control-Allow-Origin' l'en-tête est présent sur la ressource demandée. L'origine 'http://localhost:3000' n'est donc pas autorisée accès. La réponse avait le code d'état HTTP 500.
La recherche pointe vers les solutions déjà implémentées dans le projet d'API noté ci-dessus. Qu'est-ce que je rate?
Dans votre 'StartUp.cs', où avez-vous Add/UseCors, avant ou après Add/UseMvc? Cela doit être avant. –
* "La réponse avait le code d'état HTTP 500" * ⬅ c'est la seule partie importante du message cité dans la question. Ce n'est pas une erreur CORS; il ne ressemble qu'à un seul parce que le serveur n'ajoute pas l'en-tête 'Access-Control-Allow-Origin' à 500 réponses d'erreur - il ne fait probablement que l'ajouter aux réponses de succès 2xx. Alors que 500 indique que vous n'avez pas de problème CORS à la place, mais plutôt une défaillance côté serveur. C'est le vrai problème dont vous avez besoin pour identifier la cause de & fix: Le serveur dit qu'il y a une erreur fatale - côté serveur - et qu'il a cessé de fonctionner complètement, devient indisponible – sideshowbarker