v2.5.2
Giriş yap

419 ERROR CSRF Mismatch Laravel + AXIOS

ibrahimali
914 defa görüntülendi

Merhaba Herkese.

Laravel projemde bir bolumde Vue lazim oldu bana.
Her sey okeyde bir yerde takildim.
Axios ile post request atan zaman 419 hatasi aliyorum. CSRF Token mismatch yaziyor.
Halbuki axios.headersleri ayarladim. Hatta Ajaxda oldugu gibi data ya _token: csrf tokende yazdim ama nafile. Boyle bir hatayla karsilasan varsa aydinlatan olursa tesekkur ederim kodlarim sunlar:
> NOT: Bu arada Axios u da Vue nuda CDN den cekiyorum

    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script>
HTML

 var app = new Vue({
            el: '#app',
            delimiters: ['!{', '}!'],
            data: {
                productApi: 'http://localhost:8000/api/product',
                cartApi: 'http://localhost:8000/f/addtocart',
                token: '{{csrf_token()}}',
            },
            methods: {
                addtocart(id) {
                    const options = {
                        headers: {'X-Requested-With' : 'XMLHttpRequest', 'X-CSRF-TOKEN': this.token}
                    };
                    axios.post(this.cartApi, {id: id}, options)
                        .then(response => {
                            console.log(response);
                        }).catch(error => {
                        console.log(response)
                    })
                }
            },

        })
        
        //Denedigim bazi diger sheyler 
        axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
        axios.defaults.headers.common['X-CSRF-TOKEN'] = window.Laravel.csrfToken;
        //Ama ise yaramadi.
        
JavaScript
Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (1)
fatihozpolat
1357 gün önce

layout kısmına meta etiketi ekleyin: (yani bu satır tüm sayfalarda olsun)

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

resources/js/bootstrap.js içinde

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

//yerine
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
JavaScript

şeklinde güncelleyip deneyin.