Javascript 从数据库中删除引发请求失败,状态代码405错误
我正在尝试使用axios按id从MySQL数据库中删除项目。在我的Vue组件中,我设置了以下方法来处理删除项目:Javascript 从数据库中删除引发请求失败,状态代码405错误,javascript,laravel,vue.js,axios,Javascript,Laravel,Vue.js,Axios,我正在尝试使用axios按id从MySQL数据库中删除项目。在我的Vue组件中,我设置了以下方法来处理删除项目: deleteTodo(id, index){ axios.delete('api/todos/' + id).then(function(response){ console.log(response) this.todos.slice(index, 1) }.bind(this)).catch((e
deleteTodo(id, index){
axios.delete('api/todos/' + id).then(function(response){
console.log(response)
this.todos.slice(index, 1)
}.bind(this)).catch((err) => {
console.log(err)
})
}
我正在我的模板中调用deleteTodo,如下所示:
<li v-for="(todo, index) in todos">
<span>{{todo.todo}} <button @click="deleteTodo(todo.id, index)">delete</button></span>
</li>
如果我试图删除某个项目,则在控制台中会出现以下错误:
Error: Request failed with status code 405
Stack trace:
createError@http://localhost:8000/js/app.js line 107 > eval:15:15
settle@http://localhost:8000/js/app.js line 193 > eval:18:12
handleLoad@http://localhost:8000/js/app.js line 86 > eval:77:7
如果我刷新浏览器,it应用程序项目确实正在被删除(我还可以通过访问api/todos路由确认它们正在被删除)。但是,我必须按两次delete按钮并刷新浏览器,才能从数据库中实际删除该项
为什么会出现此错误,如何修复 问题最有可能来自HTTP重定向和
返回重定向('todos')代码>而请求是JSON/AJAX请求(来自使用axios的Vue组件),因此应该返回JSON响应。将return语句更改为returnresponse()->json('Deleted')代码>应该可以做到这一点 当您得到405响应时,响应头中列出了哪些访问控制允许方法?您设置了CORS吗?@ScottSchupbach Allow:“get,HEAD”@MahmudAdam是的,这是最简单的方法,工作正常。您可以更改return语句,如return response()->json('deleted')代码>。在api路由中,确保有Route::delete('todos/{id}','TodoController@remove');代码>。如果所有设置都正确,请确保没有多次定义路线。
Error: Request failed with status code 405
Stack trace:
createError@http://localhost:8000/js/app.js line 107 > eval:15:15
settle@http://localhost:8000/js/app.js line 193 > eval:18:12
handleLoad@http://localhost:8000/js/app.js line 86 > eval:77:7