rapidwebltd/no-post-data-laravel-middleware

在特定条件下,当从表单提交数据时,Web服务器可能会丢失POST数据。这通常发生在用户上传的文件大小超出Web服务器配置中设置的大小限制时。Laravel不处理这种情况,并可能导致抛出一个有些令人困惑的

v1.0.3 2018-01-30 19:25 UTC

This package is auto-updated.

Last update: 2024-09-06 09:09:07 UTC


README

在特定条件下,当从表单提交数据时,Web服务器可能会丢失POST数据。这通常发生在用户上传的文件大小超出Web服务器配置中设置的大小限制时。

Laravel不处理这种情况,并可能导致抛出一个有些令人困惑的TokenMismatchException in VerifyCsrfToken,这是由于CSRF保护导致的。

'No Post Data Laravel Middleware'处理POST请求已提交但没有POST数据的情况——在正常使用中不应发生这种情况。默认情况下,中间件将重定向回上一页面,并在会话中闪现错误消息。然后您可以像处理验证错误一样输出它。

如果需要,您还可以修改此默认行为,并允许在遇到“没有POST数据的POST请求”情况时运行任何代码。

安装

  1. 运行composer require rapidwebltd/no-post-data-laravel-middleware
  2. RapidWeb\NoPostDataLaravelMiddleware\ServiceProvider::class,添加到您的config/app.php文件中的providers数组。
  3. \RapidWeb\NoPostDataLaravelMiddleware\Http\Middleware\NoPostData::class,添加到您的app/Http/Kernel.php文件中的middleware数组。这必须在\Illuminate\View\Middleware\ShareErrorsFromSession::class,之后,并在\App\Http\Middleware\VerifyCsrfToken::class,之前添加。
  4. 运行php artisan vendor:publish
  5. 如果您愿意,可以编辑您新发布的config/nopostdata.php文件中的默认errorMessage变量。
  6. 如果您想完全更改中间件的行为,您还可以编辑位于config/nopostdata.php文件中的closure变量。