Laravel - DELETE Ajax请求

时间:2015-04-23 15:58:31

标签: laravel laravel-5 destroy

我使用的是Laravel 5.0。我创建了一个RESTful Controller。现在我想通过ajax调用使用destroy函数 这是我的JS:

$.ajax({
    type:   'POST',
    url:    '/pv/' + data.id,
    data:   {_method: 'delete' },
    success: function(data){
        console.log(data);
    }
});

这是我的销毁功能:

public function destroy($id)
{
    $pv = PV::find($id);

    $pv->delete();

    return true;
}

我得到的只是500错误。

2 个答案:

答案 0 :(得分:2)

这可能是一个“CSRF”例外。如果您正在使用jQuery的Ajax请求,请添加它(在$.ajaxSetup({ headers: { 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') } }); 之前):

{{ csrf_token() }}

并且,在你的“html”中..用csrf-token..value创建一个新的“元标记”:

{{1}}

了解详情:http://laravel.com/docs/5.0/routing#csrf-protection

答案 1 :(得分:1)

首先检查你在laravel的路线

Route::delete('/deleteprocess', 'Controller@destroy');

在javascript中

$.ajax({
url: '/deleteprocess',
type: 'POST',
data:{
'_token': $('meta[name=csrf-token]').attr("content"),
'_method': 'DELETE',
 },
success: function(result) {
    // Do something with the result
}});

设置类型:POST, 设置令牌:_token, set方法:_method为DELETE,