无法在Laravel中提出Ajax请求

时间:2018-07-24 06:59:36

标签: jquery ajax laravel-5.6

我正在尝试从警报按钮中使用ajax删除记录,但是什么也没做。这是我到目前为止所拥有的 按钮

logcat

app.js

<button type="button" value="{{$announcement->id}}" id="close-alert" class="close" data-url="{{ route('member.postDeleteAnnouncement', ['id' => $announcement->id]) }}" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>

});

和我的控制器动作

jQuery(document).ready(function($) {
$('#close-alert').click(function() {
    var url =$('#close-alert').data('url');
    ajax ({
        type: 'POST',
        url: url,
        success: function(){
                console.log('data sent');
            },
    });
});

非常感谢您的帮助。

这是路线代码

public function postDeleteAnnouncement ($announcement_id)
{
    $user = \Sentinel::getUser();
    $member = $user->member;

    $member->announcements()->detach($announcement_id);
}

2 个答案:

答案 0 :(得分:0)

您是否发布了CSRF令牌?是这种形式还是仅是按钮?

var _token = $("input[name='_token']").val();

并与其他数据一起传递。

data: { _token:_token , etc:etc }

值得尝试

答案 1 :(得分:0)

CSRF令牌在您的ajax请求中丢失,并且对于每个帖子类型请求都是必需的。像这样使用它:

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

在刀片视图中,使用:

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

Reference