Laravel如何正确进行Ajax调用

时间:2018-06-24 16:44:52

标签: ajax laravel

我有一个简单的按钮可以引发此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 \组件\ 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 :(得分:0)

请记住要检查路线中的方法是否与您提交的方法相对应。

此外,在通过Ajax提交POST请求时,您必须设置csrf令牌:

在您的HTML标头中

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

ajax调用之前:

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