Laragon环境下Laravel 10用DELETE方法遇405错误求助
解决Laravel API DELETE请求405 Method Not Allowed问题
核心问题:路由参数传递错误
你的路由是DELETE api/note/{note},需要将待删除笔记的ID作为URL路径参数传递,但当前Vue请求的URL是/api/note,且把数据放在请求体中,导致Laravel无法匹配到正确路由,返回405错误。
具体修复步骤:
修正axios请求代码:把笔记ID拼接到URL末尾,无需在请求体中传递数据。示例:
api.delete<Note>(`/api/note/${item.id}`)注意:
item.id必须是对应笔记的主键ID值,确保和路由中{note}参数匹配。验证控制器方法参数:确认
NoteController的destroy方法正确接收路由参数,比如使用模型绑定:public function destroy(Note $note) { $note->delete(); return response()->noContent(); }如果未使用模型绑定,需确保参数为ID值:
public function destroy($id) { Note::findOrFail($id)->delete(); return response()->noContent(); }确认请求头合法性:确保请求头携带正确的
Authorization: Bearer {token}(Jetstream/Sanctum的认证令牌),删除请求同样需要通过认证验证。
额外说明:
你之前修改httpd.conf的<Limit>配置并非问题根源,因为GET、POST请求正常,说明Apache已允许DELETE方法,问题核心是路由匹配失败。
内容的提问来源于stack exchange,提问作者David Lee
相关产品推荐
相关产品推荐

