【问题标题】:Ajax Delete Function in Laravel doesn't workLaravel 中的 Ajax 删除功能不起作用
【发布时间】:2017-11-04 23:14:02
【问题描述】:

我尝试在 Laravel 中创建一个 ajax 删除功能。

我不知道为什么它不起作用...没有错误但什么也没发生 - 感谢您的帮助!

我的路线:

Route::post('/deleteWithAjax', 'eventController@deleteWithAjax');

我的删除按钮:

<button value="{{$event->id}}" class="btn btn-danger btn-dell">Delete</button>

我的javascript:

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

$(document).ready(function(){
        $('document').on('click', '.btn-dell', function() {

        var id = $(this).val();
        var el =  $('#{{$event->id}}');
        $.ajax({
            type: 'post',
            url: "deleteWithAjax",
            data: {
                'id': id
            },
            success:function(data){
                el.remove();
            }
        })
    })
});

我的控制器方法:

public function deleteWithAjax(Request $r){
        eventModel::find ( $r->id )->delete();
        return response()->json();
}

我要删除的元素是一个div:

 <div id="{{$event->id}}">

编辑**

我更改了事件处理程序

 document.getElementById("btn-dell").onclick = function() 

现在它被触发了 - 但我在控制台中收到一个错误,后端仍然没有被调用:

POST http://wt-projekt.test/index.php/deleteWithAjax 419 (unknown status)
send @ app.js:29
ajax @ app.js:29
document.getElementById.onclick @ home:50

【问题讨论】:

  • 不发图片,发代码
  • 是的,抱歉,感谢您的评论!这是我的第一个问题,不知道有更好的方法。
  • 你的后端代码会被调用吗?
  • 我只是测试了它-根本没有调用后端代码。
  • 您是否在点击处理程序中添加了一个 console.log 以查看它是否正在触发?

标签: php jquery ajax laravel


【解决方案1】:

我解决了问题:

  1. 我把token部分放在了document ready函数里 --> 没有错误了,记录在数据库中被删除但仍在视图中

  2. 我在 ajax 调用中添加了 dataType: 'text' --> 在视图中也删除了错误

仍然感谢您的 cmets!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2016-12-26
    • 2018-07-17
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多