Laravel中仅Get API正常,Post REST API路由Postman报错如何解决?
解决Laravel POST REST API调用报错问题
以下是针对Laravel中POST API无法正常工作、仅GET API可用的常见排查及解决方法:
CSRF保护拦截
Laravel默认会对非GET请求校验CSRF令牌,Postman调用时未携带令牌会触发报错。解决方式:- 在
app/Http/Middleware/VerifyCsrfToken.php中将API路由加入排除列表:protected $except = [ '/api/*', ]; - 或者在请求头中添加
X-CSRF-TOKEN字段,令牌可通过csrf_token()方法获取。
- 在
路由定义错误
确认路由已正确设置为POST方法,例如在routes/api.php中:Route::post('/posts', [PostController::class, 'store']);注意API路由默认带有
/api前缀,请求URL需匹配为http://你的域名/api/posts。请求参数不匹配
检查控制器store方法的参数验证逻辑,确保Postman请求Body中的参数符合要求:public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|string', 'content' => 'required|string', ]); // 业务逻辑代码 }根据控制器接收方式,在Postman中选择
form-data或raw JSON格式传递参数。控制器方法异常
确保store方法已正确定义,注入Request类并返回合法响应:public function store(Request $request) { $post = Post::create($request->all()); return response()->json($post, 201); }请求方式错误
确认Postman中已选择POST请求方式,而非GET或其他类型。
内容的提问来源于stack exchange,提问作者Anshu Kapoor
相关产品推荐
相关产品推荐

