2016-07-05 2 views
1

Я пытаюсь получить маркер laravel в каждом запросе AJAX Post, потому что я не использую форму laravel, поэтому автоматически не извлекается токен.Как получить токен Laravel 5.2 в каждом почтовом звонке AJAX?

HTML BODY:

<input type="hidden" id="_token" name="_token" value="{!! csrf_token() !!}"> 

Мой код:

function ajax_Call() { 
    var formdata = $("form").serializeArray(); 
    token = $('#_token').val(); 
    $.ajax({ 
     url: 'url', 
     type: 'POST', 
     token: token; 
     data: formdata, 
     success: function (r) { 
     } 
    }); 
} 

Но его не working.Please помочь мне.

ответ

0

Добавить маркер в FormData вместо параметра AJAX:

function ajax_Call() { 
    var formdata = $("form").serializeArray(); 
    formdata.append("_token", $('#_token').val()); 
    $.ajax({ 
     url: 'url', 
     type: 'POST', 
     data: formdata, 
     success: function (r) { 
     } 
    }); 
} 

также вышлет маркер через заголовки:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('#_token').val() 
    } 
}); 
+0

Благодаря своей работе –

0

Добавьте следующий заголовок к вашему AJAX

headers: {'X-CSRF-TOKEN': $('#_token').val();} 
0

Попробуйте ajaxPrefi фильтр, чтобы включить маркер в вашем каждом АЯКСЕ requst:

 $.ajaxPrefilter(function(options, originalOptions, xhr) { // this will run before each request 
    var t = $('input[name="_token"]').val(); // or _token, whichever you are using 
    if (t) { 
     return xhr.setRequestHeader('X-CSRF-TOKEN', t); // adds directly to the XmlHttpRequest Object 
    } 
}); 

Теперь У вас нет необходимости добавлять:

var t = $('#token').val(); 

в вашем каждом запросе. Надеюсь, это поможет.

Смежные вопросы