Erreur d'envoi de bonne valeurs d'en-tête à un contrôle en amont de la demande de angulaire $http pour asp.net webapi
Je suis en train d'envoyer des données d'authentification à un backend web de l'api à l'aide angulaire de $http. Quand j'ai ajouter la ligne ci-dessous, le navigateur commence à envoyer de contrôle en amont des demandes de
$http.defaults.headers.common.Authorization = 'Basic xxxxyyyyyy' ;
De l'api web côté, Quand je reçois une demande avec les OPTIONS de la méthode, j'ai procédé comme suit.
if (request.Method == HttpMethod.Options && request.Headers.Any(k => k.Key.Contains("Origin")))
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add("Access-Control-Allow-Headers", "Content-Type,X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name");
response.Headers.Add("Access-Control-Allow-Origin", request.Headers.GetValues("Origin"));
response.Headers.Add("Access-Control-Allow-Credentials", "true");
response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
var tsc = new TaskCompletionSource<HttpResponseMessage>();
tsc.SetResult(response);
return tsc.Task;
}
Mais le contrôle en amont de la demande d'échec de contrôle d'accès.
XMLHttpRequest ne peut pas charger http://localhost:53024/api.............
Réponse à la demande de contrôle en amont ne passent pas de contrôle d'accès: L'
"Access-Control-Allow-Origin' en-tête contient plusieurs valeurs
'http://localhost:9000, *', mais un seul est autorisé. Origine
'http://localhost:9000' est donc pas autorisé à accéder.
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
"Access-Control-Allow-Origin-tête contenir plusieurs valeurs d'erreur" la solution est donnée dans ce lien. Veuillez donner un essai.
Espérons que cette Aide!
J'ai eu le même problème et il a été causé par le web de configuration:
Retrait de l'Access-Control-Allow-Origin-tête personnalisé permettra de résoudre ce problème