J'ai suivi cette étape pour configurer mon serveur pour activer CORS. https://docs.Microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-Origin-requests-in-web-api
Mais maintenant, dans ma console de développement de navigateur, je vois ce message d'erreur:
XMLHttpRequest ne peut pas charger https: // serveraddress/abc . La réponse pour le contrôle en amont n'est pas valide (redirection)
Savez-vous que puis-je faire pour y remédier? Je fais une demande CORS en HTTPS. Je pense que cela provoque l'échec du "contrôle en amont non valide (redirection)". Mais je ne sais pas pourquoi ni ce qui redirige la demande OPTIONS.
Merci.
Votre code déclenche l'envoi de votre navigateur par CORS preflight OPTIONS
request , et le serveur répond par un 3xx
rediriger. Il doit répondre par un 2xx
message de réussite à la place.
Vous pourrez peut-être ajuster votre code pour éviter de déclencher le navigateur pour envoyer la demande OPTIONS
.
En ce qui concerne tout ce qui se passe dans ce cas, il est important de savoir que les navigateurs effectuent un contrôle en amont CORS si:
GET
, HEAD
ou POST
Accept
, Accept-Language
, Content-Language
, Content-Type
, DPR
, Downlink
, Save-Data
, Viewport-Width
ou Width
Content-Type
l'en-tête de demande a une valeur autre que application/x-www-form-urlencoded
, multipart/form-data
, ou text/plain
Si vous ne pouvez pas modifier votre code pour éviter aux navigateurs de faire un contrôle en amont, alors une autre option est:
Location
dans la réponse à la demande OPTIONS
.La différence entre les URL peut être quelque chose d'aussi simple qu'une barre oblique de fin dans le chemin d'accès - par exemple, vous devrez peut-être modifier l'URL dans votre code en http://localhost/api/auth/login/
(remarquez la barre oblique) plutôt que http://localhost/api/auth/login
(pas de barre oblique de fin).
Vous pouvez utiliser le volet Réseau dans les outils de développement du navigateur pour examiner la réponse à la demande OPTIONS
et pour trouver l'URL de redirection dans la valeur de l'en-tête de réponse Location
.