我正在开发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)。
非常感谢任何输入。
干杯, 朱
答案 0 :(得分:0)
你的ajax网址中有开启和关闭引号问题,请按照这样使用
$.ajax({
url: '{{ action("BlogCategoryController@updateTree") }}',
type: "POST",
data: JSON.stringify(list.nestable('serialize'))
});