AJAX Post请求不与Laravel合作

时间:2018-03-02 23:19:48

标签: javascript jquery ajax laravel

我可以这样做:

 $.ajax({
        type: "GET",
        async: true,
        url: '/someurl/',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        }
    });

网络:

Route::get('/someurl','MyController@myfunction');

它的效果很好,但是当我尝试使用post:

 $.ajax({
        type: "POST",
        async: true,
        url: '/someurl/',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        }
    });

Route::post('/someurl','MyController@myfunction');

我在控制台中收到405方法不允许的错误消息

2 个答案:

答案 0 :(得分:2)

使用普通ajax

POST需要CSRF Token传递POST Method

你的ajax中的

 $.ajax({
        type: "POST",
        async: true,
        url: '/someurl/',
        dataType: 'json',  
        data : {"_token":"{{ csrf_token() }}"}  //pass the CSRF_TOKEN()
        success: function (data) {
            console.log(data);
        }
    });

设置头元标记

<meta name="csrf_token" content="{{ csrf_token() }}" />

设置标题ajax

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

答案 1 :(得分:1)

使用

添加另一条路线

Route::post('/someurl','MyController@myfunction');

顺便说一句,你没有发送任何数据,在帖子中我们需要正确发送数据..

同时检查csrf令牌是否在数据中传递,如果不是如上所述,请尝试手动添加。

如果您使用{{Form...}},它会自动添加到表单数据中。