ajax 类型的帖子在 laravel 5.4 中不起作用

Posted

技术标签:

【中文标题】ajax 类型的帖子在 laravel 5.4 中不起作用【英文标题】:ajax type post not working in laravel 5.4 【发布时间】:2018-02-21 16:52:19 【问题描述】:

如果我将 Ajax 中的类型更改为 get 并将路由更改为“Route::post('/delete','CandidateController@remove');”,则相同的功能正在运行。简而言之,get 工作正常,但 post 不是。我在控制台中收到此错误

VM2216:1 POST http://localhost/nor_management/public/delete 419 (未知状态)(匿名)@VM2216:1 发送@app.js:29 ajax@ app.js:29 (匿名)@home:110 dispatch @ app.js:29 g.handle @ app.js:29 VM2216:1 XHR 加载失败:POST “http://localhost/nor_management/public/delete”。

Ajax 调用:

 $(document).on('click','#delete',function()
                    var dataId = $(this).data("id");

                    $.ajax(

                        type:'POST',
                        url:"!! URL::to('delete') !!",
                        data:'id':dataId,,
                        dataType: 'JSON',


                        success:function(data)
                            console.log('success');
                            console.log(data);
                            console.log(data.length);
                           $("#table").load("data");
                        ,
                        error:function()

                        ,
                    );
                );
            );

表格:

<div class="container">
    <div class="row">
        <div class="col-md-12"  >
            <div class="panel panel-default" >
                <div class="panel-heading"><a href="add">Add New Candidate</a></div>

                <div class="panel-body">
                        <meta type="hidden" name="csrf-token" content="csrf_token()">
                    <div class="table-responsive" >

                        @include('data')
                    </div>

                </div>
            </div>
        </div>
    </div>
</div>
</form>

路线:

Route::post('/delete','CandidateController@remove');

控制器:

public function remove(Request $request)
        $id  = $request->id;
        $candidate = new Candidate;
        $candidate->where('id', '=', $id)->delete();
    

【问题讨论】:

我会查看服务器端错误日志 【参考方案1】:

试试这个:

$(document).on('click','#delete',function()
    var dataId = $(this).data("id");
    var token = $('meta[name="csrf-token"]').attr('content');
    $.ajax(

        type:'POST',
        url:"!! URL::to('delete') !!",
        dataType: 'JSON',
        data: 
            "_method": 'POST',
            "_token": token,
            "id": dataId,
        ,
        success:function(data)
            console.log('success');
            console.log(data);
            console.log(data.length);
           $("#table").load("data");
        ,
        error:function()

        ,
    );
);

【讨论】:

非常感谢它的工作:),我发现您还必须在数据中发送令牌和方法

以上是关于ajax 类型的帖子在 laravel 5.4 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4,AJAX 应该不会出错

Laravel 5.4 的 Ajax 请求

使用Laravel 5.4请求Ajax

Laravel 5.4 Eloquent where parent

无法使用 $request->ajax() 和 Laravel 5.4 检查请求是不是为 ajax

内部服务器错误 500 Laravel 5.4 AJAX