路线

时间:2017-06-23 13:31:07

标签: php jquery ajax laravel laravel-5

我正在开发Laravel 5.3解决方案。我尝试从我的一个视图通过AJAX调用POST路由来更新一组类别,但每次调用路由时都会出现404错误。

有趣的事实:在开发期间,我能够使用下面显示的JS代码成功调用该路由 - 但是由于我对控制器代码本身进行了一些更新,因此它会引发404但不例外。

这是我的控制器动作:

public function updateTree( Request $request )
{
    $data = $request->json()->all();

    $result = BlogCategory::rebuildTree($data, false);

    if($result > 0) {
        return Response::HTTP_OK;
    }
    return Response::HTTP_NOT_MODIFIED;
}

这里是JS AJAX调用:

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

var updateTree = function (e) {
    var list = e.length ? e : $(e.target), output = list.data('output');

    console.log(JSON.stringify(list.nestable('serialize')));

    $.ajax({
        url: '{{ action('BlogCategoryController@updateTree') }}',
        type: "POST",
        data: JSON.stringify(list.nestable('serialize'))
    });
};

$(document).ready(function() {
    $('#nestable2').nestable({
        group: 1
    }).on('change', updateTree);
});

控制器路由的绑定方式与web.php

中的绑定方式类似
Route::post( '/service/blog/categories/updatetree', 'BlogCategoryController@updateTree' );

正如您所看到的,我在这里使用LazyChaser的Laravel NestedSet模块(https://github.com/lazychaser/laravel-nestedset)。

非常感谢任何输入。

干杯, 朱

1 个答案:

答案 0 :(得分:0)

你的ajax网址中有开启和关闭引号问题,请按照这样使用

$.ajax({
    url: '{{ action("BlogCategoryController@updateTree") }}',
    type: "POST",
    data: JSON.stringify(list.nestable('serialize'))
});