You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue调用axios.patch出现PATCH 405 (Method Not Allowed)错误求助

解决Laravel中PATCH请求405 Method Not Allowed的问题

嘿,这个405错误的原因很明确——你的路由定义和前端发起的HTTP请求方法不匹配!咱们一步步来修复:

问题根源

你在web.php里把路由定义成了POST方法:

Route::post('/slideUpdate/{id}','SlideController@postSlideUpdate');

但前端Vue的update方法里用的是PATCH请求:

axios.patch(`/admin/slideUpdate/${this.list.id}`,this.$data.list)

Laravel会严格校验HTTP请求方法,方法不匹配就会抛出405错误。

解决方案(二选一即可)

方案1:修改路由为PATCH方法(推荐,符合RESTful规范)

既然是更新操作,用PATCH更贴合语义,直接把路由的post改成patch:

Route::patch('/slideUpdate/{id}','SlideController@postSlideUpdate');

如果想让控制器方法名更语义化,也可以改成updateSlide,不过不改也不影响功能。

方案2:修改前端请求为POST方法

如果不想调整路由,就把前端的axios请求从patch改成post:

axios.post(`/admin/slideUpdate/${this.list.id}`,this.$data.list)

额外小优化

你的控制器代码里有个细节可以改进:路由已经传递了{id}参数,直接用这个$id查找模型更可靠,不用从$request->id取(万一请求里没传id就会出错):

public function postSlideUpdate(Request $request,$id) {
    $product = Slide::find($id);
    // 这里处理你的更新逻辑,比如填充字段
    // $product->title = $request->title; 或者用$product->fill($request->all())
    $product->save();
}

内容的提问来源于stack exchange,提问作者Quan Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:38:57