Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois une erreur POST 419 dans mes requêtes Laravel Ajax ?

Pourquoi est-ce que je reçois une erreur POST 419 dans mes requêtes Laravel Ajax ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 02:16:02526parcourir

Why Am I Getting a 419 POST Error in My Laravel Ajax Requests?

Comprendre et résoudre les erreurs POST Ajax Laravel 419

L'erreur Laravel 419 POST est un problème courant qui survient dans les requêtes Ajax. Cela se produit en raison de l'absence de jetons de protection CSRF (Cross-Site Request Forgery) dans l'en-tête de la demande. Laravel implémente la protection CSRF par défaut pour empêcher les requêtes malveillantes provenant de sources externes.

Cause première de l'erreur 419

Laravel génère un jeton CSRF unique pour chaque session utilisateur active. Ce jeton permet de vérifier que l'utilisateur authentifié est bien celui qui fait la demande. Si la requête ne contient pas le bon jeton CSRF, Laravel renverra une erreur 419.

Configuration de l'appel Ajax

Dans l'appel Ajax fourni, le X-CSRF- L’en-tête TOKEN est manquant. Ajoutez cette ligne à la configuration de votre appel Ajax pour inclure le jeton dans chaque requête :

<code class="javascript">$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});</code>

Cela garantit que le jeton CSRF est inclus dans chaque requête Ajax, ce qui le rend compatible avec la protection CSRF de Laravel.

Solution alternative : exclure des routes de la vérification CSRF

Alternativement, vous pouvez exclure certaines routes de la vérification des jetons CSRF dans le middleware VerifyCSRFToken. Dans app/Http/Kernel.php, ajoutez les routes souhaitées à la propriété $sauf :

<code class="php">protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*
];</code>

Cela exemptera les routes spécifiées de la vérification du jeton CSRF, leur permettant de contourner l'erreur 419 pour les requêtes Ajax.

Conclusion

En incluant le jeton CSRF dans la requête Ajax ou en excluant la route de la vérification CSRF, vous pouvez résoudre efficacement l'erreur Ajax Laravel 419 POST et garantir l'intégrité des demandes de votre candidature.

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