Laravel 5 Ajax Post 路线

Laravel 5 Ajax Post route

这是我第一次尝试使用ajax来Post而不是Get。我收到 200 响应,就好像它在工作一样,但控制器中的功能永远不会 运行。

我在我的 ajax Get 请求中使用了相同的概念并且它们工作正常但是 Post 没有按预期工作并且 sortable('serialize') 创建了一个 Post 变量,所以我需要使用 Post。

成功中的警报:功能总是 运行s 就好像它是成功的但控制器功能永远不会被命中(我让它做了一个简单的数据库更改只是为了验证它是否是 运行宁).

Ajax:

$(function() {
  $('[id^="sortable_"]').sortable(
    {
        connectWith: '.sortable-line-item-list-5',    
        update : function (event, ui) 
        { 
        var items = $(this).sortable('serialize');  
            $.ajax({
                type: 'post',
                url: '/api/sort_order_item',
                data: {
                    'items': items,
                },
                success: function()
                {
                    alert('looks like it is working...');
                },
            });
        }
    });
    $( '[id^="sortable_"]' ).disableSelection();
});

路线:

Route::post('api/sort_order_item', ['as' => 'api/sort_order_item', 'uses' =>'ApiController@SortOrderItem']);

控制器:

public function SortOrderItem()
{
    $this_item = \pmms\Checklist_template_line_item::findOrFail(20);
    $this_item->list_position = 1;
    $this_item->save(); 
}

我认为你的问题是 csrf_token, 将此行放在您的 blade 页面标题部分:

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

然后,像这样更新您的 ajax 代码:

$.ajax({
            type: 'post',
            url: '/api/sort_order_item',
            data: {
                'items': items,
                '_token': $('meta[name="csrf-token"]').attr('content'),
            },
            success: function()
            {
                alert('looks like it is working...');
            },
        });

如果对你有帮助请告诉我