2016-08-23 2 views
0

Я хочу отправить запрос на отправку Ajax, но я получаю некоторые проблемы с CSRF.Как пройти CSRF-защиту с помощью Ajax в Laravel 5.2

Вот мой JS код:

function sendAjaxRequest(index){ 
    var token = $('meta[name=csrf_token]').attr('content') 
    $.ajaxSetup({ headers: { 'csrftoken' : token } }); 
    $.ajax({ 
     method: "POST", 
     data: '{"value":"10"}', 
     dataType: 'json', 
     url: "http://localhost/laravel/public/", 
    }); 
} 

Вот мой маршрут из моего файла routes.php Laravel:

Route::post('/','[email protected]');

Вот моя консоль (JQuery вопрос):

POST http://localhost/kaemo/public/ 500 (Internal Server Error) 

Вот моя сеть Предварительный просмотр:

TokenMismatchException in VerifyCsrfToken.php line 67: 

Любые идеи?

ответ

3

Try установить CSRF токен в X-CSRF-TOKEN как,

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

И добавьте следующий код в вашем app/Http/Middleware/VerifyCsrfToken.php, добавьте метод tokenMatch() к этому.

<?php 
    /** 
    * Determine if the session and input CSRF tokens match. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return bool 
    */ 
    protected function tokensMatch($request) 
    { 
     // If request is an ajax request, then check to see if token matches token provider in 
     // the header. This way, we can use CSRF protection in ajax requests also. 
     $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token'); 

     return $request->session()->token() == $token; 
    } 

Подробнее [Laravel5] TokenMismatchException in VerifyCsrfToken

1

Попробуйте поместить маркер в ваш data

var token = "{{csrf_token()}}"; 
$.ajax({ 
    method: "POST", 
    data: '{"value":"10", _token: token}', 
    dataType: 'json', 
    url: "http://localhost/laravel/public/", 
}); 
+0

, к сожалению, не работает. –

+0

ehh просто понял, что ваш URL-адрес кажется неправильным, попробуйте использовать только http: // localhost/laravel? – SteD

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