Ajax и Laravel

#jquery #ajax #laravel

#jquery #ajax #laravel

Вопрос:

Я пытаюсь выяснить, почему я продолжаю получать ошибку сервера 500 по этому поводу. Я правильно настроил его в своих маршрутах, как я предоставил, и все, что я делаю, это возвращаю строку, ха-ха, просто чтобы посмотреть, попадает ли она в маршрут.

 Route::post('roster/getRosterMembers', ['as' => 'roster.getRosterMembers', 'uses' => 'RosterMembersController@getRosterMembers']);

(function(document, window, $) {
    $('#type_id').change(function() {
        var type = $(this).val();
        $.ajax({
            method: 'POST',
            url: "/roster/getRosterMembers",
            token: '{{ csrf_token() }}'
        })
        .success(function( data ) {
            if ( console amp;amp; console.log ) {
                    console.log( "Sample of data:", data.slice( 0, 100 ) );
            }
        })
        .error(function() {
            alert('Hello');
        });
    });


})(document, window, jQuery);

public function getRosterMembers() {
    return 'haha';
}
  

Комментарии:

1. Было бы полезно, если бы вы включили ошибку 500

2. Ошибка 500 генерируется вашим php кодом, а не ajax проверкой вашего кода в контроллере или модели. Кроме того, если маршрут не существует или ваш контроллер также не существует, вы также получите сообщение об ошибке

3. Я не понимаю, потому что все, что я делаю в данный момент, возвращает строку.

4. Есть ли у вас этот контроллер и предоставленный метод или вы также подделываете контроллер.

5. Метод getRosterMembers находится в контроллере.

Ответ №1:

Вместо token: '{{ csrf_token() }}' этого _token: '{{ csrf_token() }}' . Обратите внимание на _ .

Ответ №2:

Поскольку вы используете jQuery, вы можете вставить эти коды в свои файлы просмотра:

Вставьте их между

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

Вставьте этот скрипт:

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

Это автоматически вставит токен CSRF в заголовки всех ваших вызовов AJAX

Откуда: https://laravel.com/docs/5.3/csrf#csrf-x-csrf-token