Maison > interface Web > js tutoriel > le corps du texte

Comment corriger les erreurs « Champs d'en-tête de demande non autorisés » dans les transferts de fichiers d'origine croisée ?

DDD
Libérer: 2024-11-01 13:36:02
original
109 Les gens l'ont consulté

How to Fix

Résolution des erreurs « Champs d'en-tête de demande non autorisés » dans les transferts de fichiers d'origine croisée

Lors d'une tentative d'envoi de fichiers via une requête POST, les développeurs peuvent rencontrer l'erreur : " Le champ d'en-tête de requête Content-Type n'est pas autorisé par Access-Control-Allow-Headers." Cette erreur indique que le serveur n'autorise pas le champ d'en-tête spécifié.

La tentative initiale de résoudre cette erreur en ajoutant divers en-têtes, notamment "Access-Control-Allow-Origin" et "Access-Control-Allow- Methods", a entraîné une nouvelle erreur : "Le champ d'en-tête de demande Access-Control-Allow-Origin n'est pas autorisé par Access-Control-Allow-Headers."

En enquêtant plus en profondeur, il a été découvert que la documentation jQuery avertit contre la définition du type de contenu sur autre chose que « application/x-www-form-urlencoded », « multipart/form-data » ou « text/plain » pour les requêtes inter-domaines. Le type de contenu par défaut d'Angular est "application/json", ce qui déclenche une requête OPTIONS de contrôle en amont au serveur.

Pour résoudre ce problème, vous pouvez soit écraser l'en-tête par défaut d'Angular, soit autoriser Access-Control-Allow-Headers sur le fin du serveur. Voici un exemple de remplacement de l'en-tête par défaut d'Angular :

$http.post(url, data, {
    headers : {
        'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
    }
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!