如何在 Laravel 控制器上通过 postman/insomnia http 客户端发送表单?

How to send a form via postman/insomnia http client on a Laravel controller?

我有一个具有以下代码的控制器

class FormController extends Controller
{
    public function submit(Request $request)
    {
        dd($request);

    }
}

我记得有 csrf 保护,我在我的前端找到了我的 csrf 令牌。所以,我把它添加到 http client insomnia 的字段中。但结果我得到了以下

内容类型是 multipart/form-data。怎么了?

Laravel 有一个名为 web 的中间件组可以保护您的路由。它在 web.php 文件中。 你可以在 app/Providers/RouteServiceProvider.php

中看到路由中间件
protected function mapWebRoutes()
{
    Route::middleware('web')
         ->namespace($this->namespace)
         ->group(base_path('routes/web.php'));
}

web 中间件组为您的项目添加了很多中间件,例如 VerifyCsrfToken

你可以在`app/Http/Kernel.php'

中看到它们的列表
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
         \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

如您所知,Laravel 有另一个名为 api 的中间件和路由文件夹,它没有任何 CSRF 保护。 您可以将不需要 CSRF 保护的路由(我的意思是您的应用程序的 API)声明为 route/api.php

通过在 route/api.php 文件中声明此类路由,您可以轻松地使用 Postman/Insomnia 发出请求,例如 app.