leshikgo
@leshikgo

Как отправлять данные через Ajax в Laravel?

Привет всем. Помогите разобраться с Ajax на Laravel, всё не получается отправить данные.
Сам ajax
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

$('#recipe_comments').on('submit', function(e) {
    e.preventDefault();
    var text = $('.text').val();
    $.ajax({
        type: "POST",
        url: '/add_comment',
        data: {text:text},
        success: function(param)
        {
            console.log(param);
        },
        error: function(msg){
            console.log('error');
        }
    });
});

<form class="form-horizontal" method="POST" id="recipe_comments" enctype = "multipart/form-data">
                <input type="hidden" name="_token" value="{{ csrf_token() }}">
                <textarea class="form-control text" rows="4" placeholder="Ваш отзыв"></textarea>
                <button type="submit" class="btn btn-primary">Submit</button>
            </form>

Route::post('/add_comment', 'CommentsController@addComment');


class CommentsController extends Controller
{
    public function addComment(Request $request) {
        if($request->ajax()){
            $comment = new Comment();
            $comment->text =  Input::get('text');
            $comment->date = Carbon::now();
            $comment->save();
            $response = array(
                'status' => 'success',
                'msg' => 'Setting created successfully',
            );
            return Response::json($response);
            return 'yes';
        }else{
            return 'no';
        }
    }
}


Ошибка в консоли при отправке:
POST http://el-recipes/add_comment 500 (Internal Server Error)


Наверное косяки с CSRF, но не уверен. Подскажите как отследить на каком этапе идёт сбой. Спасибо. Так же хотелось бы узнать как лучше это всё реализовать..
  • Вопрос задан
  • 2892 просмотра
Решения вопроса 3
@Nimfus
Стоит проверить логи и тэг мета, добавлен ли там токен
Ответ написан
Комментировать
DJZT
@DJZT
Laravel - code for you
500 - jшибка в коде. Что в логах? Какой результат ответа?
Ответ написан
Комментировать
vikkyshostak
@vikkyshostak
< This head full of dreams.
Поставь вместо этого:

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

просто вот это: {{ csrf_field() }}

https://laravel.com/docs/5.3/csrf
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы