rapidwebltd / no-post-data-laravel-middleware
在特定条件下,当从表单提交数据时,Web服务器可能会丢失POST数据。这通常发生在用户上传的文件大小超出Web服务器配置中设置的大小限制时。Laravel不处理这种情况,并可能导致抛出一个有些令人困惑的
v1.0.3
2018-01-30 19:25 UTC
Requires
- php: >=5.5.9
- laravel/framework: 5.*
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请求”情况时运行任何代码。
安装
- 运行
composer require rapidwebltd/no-post-data-laravel-middleware
。 - 将
RapidWeb\NoPostDataLaravelMiddleware\ServiceProvider::class,
添加到您的config/app.php
文件中的providers
数组。 - 将
\RapidWeb\NoPostDataLaravelMiddleware\Http\Middleware\NoPostData::class,
添加到您的app/Http/Kernel.php
文件中的middleware
数组。这必须在\Illuminate\View\Middleware\ShareErrorsFromSession::class,
之后,并在\App\Http\Middleware\VerifyCsrfToken::class,
之前添加。 - 运行
php artisan vendor:publish
。 - 如果您愿意,可以编辑您新发布的
config/nopostdata.php
文件中的默认errorMessage
变量。 - 如果您想完全更改中间件的行为,您还可以编辑位于
config/nopostdata.php
文件中的closure
变量。