Maison > Article > développement back-end > Pourquoi ma requête POST AngularJS échoue-t-elle avec un 404 pour la requête de contrôle en amont ?
Échec de la requête POST AngularJS : HTTP 404 pour la demande de contrôle en amont
Dans AngularJS, une erreur non résolue « XMLHttpRequest ne peut pas se charger » peut se produire lors des requêtes POST . Cela est dû à un code d'état HTTP non valide (404) pour la demande de contrôle en amont qui précède le POST réel. La demande de contrôle en amont est destinée à vérifier si l'opération demandée est autorisée, garantissant ainsi le respect des politiques de partage de ressources d'origine croisée (CORS).
Cause fondamentale : en-têtes CORS manquants
La cause sous-jacente de l'erreur réside dans l'incapacité du serveur à gérer correctement la requête OPTIONS de contrôle en amont. Pour activer les requêtes d'origine croisée, le serveur doit définir les en-têtes CORS appropriés.
Solution : ajout d'en-têtes CORS côté serveur
Dans SlimPHP, vous pouvez ajouter des en-têtes CORS à l'objet de réponse :
<code class="php">$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type'); $app->response()->headers->set('Content-Type', 'application/json'); $app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); $app->response()->headers->set('Access-Control-Allow-Origin', '*');</code>
Solution : Désactivation des demandes de contrôle en amont côté client
Vous pouvez également désactiver les demandes de contrôle en amont côté client en réinitialisant les en-têtes communs dans AngularJS :
<code class="js">app.config(function ($httpProvider) { $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; });</code>
Considérations supplémentaires
Pour les requêtes POST impliquant des données sensibles, vous devrez peut-être mettre en œuvre des mécanismes d'authentification et d'autorisation, tels que les jetons Web JSON (JWT), pour sécuriser la connexion. Il est essentiel de bien comprendre CORS et d'assurer un traitement approprié des demandes OPTIONS pour prévenir les failles de sécurité.
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!