Laravel RESTful API报PUT方法不允许,Vue+PHP更新记录配置求助
解决Vue + Laravel更新数据时的405 Method Not Allowed错误
这个问题根源很清晰——前端发送的是PUT请求,但后端路由只配置了PATCH方法处理更新操作,服务器因此返回405(方法不允许)的错误。下面给你两种直接可行的修复方案:
方案一:修改前端请求方法,与后端路由匹配
把你前端fetch请求里的method: 'put'改成method: 'patch',和后端路由定义的方法保持一致:
// Update fetch('api/article', { method: 'patch', // 此处修改为patch body: JSON.stringify(this.article), headers: { 'content-type': 'application/json' } })
方案二:后端路由同时支持PUT和PATCH方法
如果你不想改动前端代码,可以在Laravel的api.php里,让更新路由同时兼容PUT和PATCH两种HTTP方法:
// 替换原有的Update Article路由 Route::match(['put', 'patch'], 'article', 'ArticleController@store');
或者也可以单独新增一条PUT路由,保留原有的patch路由:
//Create New Article Route::post('article','ArticleController@store'); //Update Article - 同时支持patch和put请求 Route::patch('article','ArticleController@store'); Route::put('article','ArticleController@store'); //Delete Article Route::delete('article/{id}','ArticleController@destroy');
额外小提示
检查下你的控制器逻辑:更新操作时你用$request->article_id查找文章,要确保前端传递的this.article里确实包含article_id字段。如果前端传递的是id而非article_id,记得把$request->article_id改成$request->id,避免出现找不到模型的问题。
内容的提问来源于stack exchange,提问作者geometria
相关产品推荐
相关产品推荐

