2017-09-06 1 views
2

je suis en train de faire des demandes en utilisant Axios et la dernière version Laravel 5.5 après configure les champs X-CSRF et tous mon code est simple:demande de poste à l'aide d'Axios sur Laravel 5.5

 axios.post('/post-contact',{name:'Kamal Abounaim'}) 
     .then((response)=>{ 
      console.log(response) 
     }).catch((error)=>{ 
      console.log(error.response.data) 
     }) 

mais je reçois cette erreur: 419 (statut inconnu) ce que le problème supposé être Merci d'avoir répondu

+0

Est Cela se produit après que vous avez été sur la page pendant un certain temps ou tout de suite après un chargement de la page? Avez-vous d'autres erreurs dans votre console? –

+0

désolé n'a pas dit ce commentaire, non je n'ai pas d'erreurs si j'ai essayé avec axios.get cela fonctionne, mais avec poste pas je crée un formulaire plaine et essayer de publier et cela fonctionne à –

+0

Si vous vérifiez l'onglet réseau votre navigateur est-il en train d'inclure l'en-tête 'X-XSRF' ou' X-CSRF' dans la requête ou le '_token' dans le corps?] –

Répondre

0

A 419 error seems to be Authentification Timeout. Votre code me semble bien, donc il semble que l'erreur est avec le point de terminaison post-contact? Essayez de tester ce point de terminaison seul, dans un outil tel que postman.

+0

Merci bro mais avec la version précédente c'était okey est le 5.5 a besoin de nouveaux outils ou je ne comprends pas –

+0

Hmm étrange, pas sûr. Espérons que quelqu'un d'autre pourrait être capable de s'introduire ici. J'utilise Laravel mais pas encore amélioré à 5.5. – fredrivett

+0

ouais si vous le dites, je déteste ces situations :( –

2

Cela se produit en raison du jeton csrf. Ajoutez simplement la balise meta avec le jeton csrf dans le <head> et ajoutez ce jeton à l'en-tête axios comme ça.

// in the <head> 
<meta name="csrf-token" content="{{ csrf_token() }}"> 

<script type="text/javascript"> 
    // For adding the token to axios header (add this only one time). 
    var token = document.head.querySelector('meta[name="csrf-token"]'); 
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; 

    // send contact form data. 
    axios.post('/post-contact',{name:'Kamal Abounaim' 
    }).then((response)=>{ 
     console.log(response) 
    }).catch((error)=>{ 
     console.log(error.response.data) 
    }); 
</script> 
0

Il est middleware VerifyCsrfToken ... Juste un commentaire dans app/Http/Kernel.php

protected $middlewareGroups = [ 
     'web' => [ 
      .. middlewares before 
      //\App\Http\Middleware\VerifyCsrfToken::class, -> comment this or delete 
      .. other 
     ], 

     'api' => [ 
      'throttle:60,1', 
      'bindings', 
     ], 
    ]; 

J'ai même problème et grâce à @abdalla Arbab :)