VueJS和Laravel:DELETE请求变为MethodNotAllowedHttpException

时间:2015-08-05 16:02:09

标签: javascript php ajax laravel vue.js

我正在尝试向Laravel API发出删除请求。

我有一个todo-App和一个带有 removeTask 方法的tasks.js,它将任务对象作为参数传递。

removeTask: function(task)
{
    this.tasks.$remove(task);

    this.$http.delete('/api/tasks', { task, 'method': 'DELETE' });
},

以下是我在chrome-dev-tools中的内容:

Chrome Dev Tools Screenshot

这是我的TasksController上的destroy方法:

public function destroy(Request $request, $id)
{
    //
    return response()->json(Input::all());
}

我到底哪里错了?

提前谢谢。

修改

我有一条资源丰富的路线,如下所示:

Route::get('/', function () {
    return view('pages.tasks.index');
});

Route::group(['prefix' => 'api'], function() {
    Route::resource('tasks', 'TasksController');
});

2 个答案:

答案 0 :(得分:1)

在laravel的routes.php文件中设置一条路线,如下所示:

Route::delete('api/tasks', 'TasksController@destroy');

答案 1 :(得分:0)

错误出现在使用Vue的 removeTask 方法中:

removeTask: function(task)
{
    this.tasks.$remove(task);

    this.$http.delete('/api/tasks', { task, 'method': 'DELETE' });
},

应该有这个:

removeTask: function(task)
{
    this.tasks.$remove(task);

    this.$http.delete('/api/tasks/' + task.id, task);
},

没有传递id,就像我建议的资源路线一样。