Laravel 5.5 MethodNotAllowedHttpException ajax

时间:2017-10-22 18:42:53

标签: javascript jquery ajax laravel post

我试图通过ajax请求发布一些数据。

这是我的view.blade.php中的javascript代码,它引用了http://mysite/element/edit/ {id}

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

    $(function() {
        $( "#append-content" ).sortable({ handle: '.composer-row-header-handle' }).bind('sortupdate', function(e, ui) {

            var rowID = $('.composer-row').map(function(){
                return $(this).attr("id");
            }).get();

            $.ajax({
                type: "POST",
                url: "sort/store",
                dataType: "json",
                data: {
                    rowID: rowID
                },
                success: function(order){
                    console.log(rowID)
                },
                error: function(){
                    console.log(rowID)
                }
            });
        });

    });
</script>

并在同一个文件中插入了相对的_token meta

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

然后我在路径文件中设置了一个POST路由

Route::post('element/edit/sort/store', 'ElementsController@sort');

我的ElementsController排序函数是

public function sort(Request $request)
{
    $rowID = $request->input('rowID');
    $i = 1;

    foreach($rowID as $val) {
        $val = str_replace("row-", "", $val);
        DB::table('element')
            ->where('refID', 1)
            ->where('rowID', $val)
            ->update(
                [
                    'rowORDER' => $i,
                ]
            );
        $i++;
    }
}

但是当我尝试重新排序日志时,响应是

jquery-1.12.0.min.js:4 POST http://mysite/element/edit/sort/store 500 (Internal Server Error)

如果我尝试在新页面中打开链接,则结果为

Error page

提前感谢您的每一个答案

2 个答案:

答案 0 :(得分:0)

解决,

可能工作了太多时间。我在错误的Controller文件上编辑排序功能。

答案 1 :(得分:0)

更改{{URL :: to('element / edit / sort / store')}}并尝试