Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数据库中删除引发请求失败,状态代码405错误_Javascript_Laravel_Vue.js_Axios - Fatal编程技术网

Javascript 从数据库中删除引发请求失败,状态代码405错误

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

我正在尝试使用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((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