我在Laravel 8中有一个简单的路由来返回一些请求数据。但是当我在Postman中选择POST发送请求时,我得到一个错误";此路由不支持GET方法"请记住,我在Postman中选择了POST,而不是GET。
这是路线:
Route::post('post-route', 'UserController@postFunction');
这是在UserController中调用的函数:
public function postFunction(Request $request) {
return [
'id1' => $request->id1,
'id2' => $request->id2,
];
}
在Postman中,我以json:的形式传递数据
{
'id1': 1234,
'id2': 4321
}
我只是想确保我在请求中传递了正确的数据,但我收到了这个错误。为什么它试图命中GET请求?
您无法使用Postman测试POST、PUT或DELETE路由,因为Laravel使用CSRF中间件保护。
如果你真的想使用Postman,你需要在app/Http/Kernel.php
:中对其进行注释以临时禁用该中间件
protected $middlewareGroups = [
'web' => [
(...)
//AppHttpMiddlewareVerifyCsrfToken::class,
],
(...)
];
但一旦您想在生产中部署项目,请不要忘记再次启用它
如果你不想临时禁用CSRF中间件,你可以按照这里提到的步骤https://gist.github.com/ethanstenis/3cc78c1d097680ac7ef0,但时间稍长。