Maison >développement back-end >tutoriel php >Pourquoi mon appel AJAX Laravel 5.5 renvoie-t-il une erreur « 419 (statut inconnu) » ?

Pourquoi mon appel AJAX Laravel 5.5 renvoie-t-il une erreur « 419 (statut inconnu) » ?

DDD
DDDoriginal
2024-12-01 19:08:14345parcourir

Why Does My Laravel 5.5 AJAX Call Return a

Laravel 5.5 AJAX Call Returns "419 (Statut inconnu)

Introduction

Lors de l'exécution d'appels AJAX dans Laravel 5.5, rencontrer une erreur « 419 (Statut inconnu) » peut être souvent frustrant. indique un problème de protection contre la falsification de requêtes intersites (CSRF). Cet article explore la cause de cette erreur et fournit une solution complète pour la résoudre.

Comprendre la protection CSRF

Laravel utilise la protection CSRF pour se prémunir contre les actions non autorisées initiées via des requêtes externes. Il s'agit de valider que la requête provient d'une source légitime, empêchant ainsi les acteurs malveillants d'exécuter des actions malveillantes sur le compte d'un utilisateur. nom.

Résoudre l'erreur "419"

En l'absence de formulaire dans votre code, l'erreur survient car le token fourni dans la requête AJAX ne correspond pas à celui stocké dans la session Pour résoudre ce problème, vous devez vous assurer que votre application génère le jeton CSRF et l'inclut dans la requête AJAX. correctement.

Solution

1. Ajoutez une balise méta CSRF

Incluez la balise méta suivante dans la section d'en-tête de votre HTML :

<meta name="csrf-token" content="{{ csrf_token() }}">

Cette balise méta génère un jeton CSRF unique et le stocke dans la session du navigateur.

2. Configurez la requête AJAX

Mettez à jour votre requête AJAX pour récupérer le jeton CSRF de la balise méta :

$.ajax({
  url: '/fetch-company/' + companyId,
  method: 'POST',
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
  },
  ...
});

3. Activer la protection CSRF

Assurez-vous que la protection CSRF est activée dans votre application Laravel en vérifiant le middleware app/Http/Middleware/VerifyCsrfToken.php. Il doit être ajouté au tableau $middlewareGroups['web'] dans le fichier kernel.php.

Conclusion

En mettant en œuvre ces étapes, vous pouvez résoudre efficacement le « 419 (statut inconnu) " erreur lors des appels AJAX dans Laravel 5.5. N'oubliez pas que la protection CSRF est cruciale pour maintenir la sécurité de votre application Web. Il est donc essentiel de suivre attentivement ces directives. Reportez-vous à la documentation officielle de Laravel pour plus d'informations sur la protection CSRF.

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!

Déclaration:
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