Laravel как правильно сделать вызов ajax - PullRequest
0 голосов
/ 24 июня 2018

У меня есть простая кнопка, которая выдает этот Ajax-запрос:

function myfunction(param){
        var date_debut = $('#datet_debut').val();
        var date_fin = $('#date_fin').val();
        $.ajax({
            url: '{{ route('createDispo') }}',
            type: 'POST',
            dataType: "json",
            data: {
                date_debut: name,
                date_fin: name,
            },

            success: function (data) {
                alert('success');
            },
            error: function (e) {
                console.log(e.responseText);
            }
        });
    }

Но у меня есть эта ошибка:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Нет сообщения

Маршрут генерируется так:

Route::post('/createDispo','DepotDispoController@createDispo')->name('createDispo');

Вот контроллер для обработки запроса:

public function createDispo(Request $request){
    $user = User::find($request->user_id);
    $disponibilite = new Disponibilite();
    $disponibilite->date_debut = $request->date_debut;
    $disponibilite->date_fin = $request->date_fin;
    $user->disponibilites()->save($disponibilite);
}

Итак, почему мой Ajax-запрос не работает?

1 Ответ

0 голосов
/ 24 июня 2018

Не забудьте проверить, что ваш метод в маршрутах соответствует методу, который вы отправляете.

Кроме того, при отправке запроса POST через Ajax вы должны установить токен csrf:

В вашемЗаголовок HTML

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

Перед вызовом ajax:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...