laravel 5.8.7 页面过期(419)
Posted
技术标签:
【中文标题】laravel 5.8.7 页面过期(419)【英文标题】:laravel 5.8.7 Page expired (419) 【发布时间】:2019-08-15 02:07:52 【问题描述】:我正在从表单提交一个 POST 请求,它显示 419 |页面已过期。
Blade.php:
<form action="<?php echo action('TestsController@store'); ?>" method="post">
路线:
Route::resource('tests', 'TestsController');
控制器:
public function store(Request $request)
echo "something something";
【问题讨论】:
您是否在表单中添加了@csrf
?
仅供参考,如果您在.blade.php
文件中,<?php echo action('TestsController@store'); ?>
可以写成 action('TestsController@store')
我是 laravel 新手,我不知道 @csrf.Thanks (y)
***.com/a/53253184/2693543
【参考方案1】:
在我的情况下,另一个管理员用户使用 OTP 在我的自定义管理面板中登录
所以他无法使用这个新的 laravel/ui 身份验证登录/注册默认页面登录
【讨论】:
【参考方案2】:就我而言,我通过为我的域设置 SSL 解决了这个问题。我已经尝试了所有的解决方案,但他们没有工作。然后我为域设置了 SSL,它解决了问题。
【讨论】:
【参考方案3】:正如Levente 所说,首先尝试将@csrf 放入表单中。如果这不起作用,请参阅此thread。这是这个问题的副本。
【讨论】:
您可以通过登录或注册页面轻松重现此错误。不要做任何事情,也许超过 30 分钟。然后当你点击提交时,419 Page Expired
就会出现。为了可用性,你如何告诉一个简单的用户刚刚发生了什么以及如何解决它?【参考方案4】:
Laravel 具有内置的 CSRF 保护。 Check out the official documentacion.
将@csrf
添加到您的表单中。
<form action="<?php echo action('TestsController@store'); ?>" method="post">
@csrf
</form>
【讨论】:
以上是关于laravel 5.8.7 页面过期(419)的主要内容,如果未能解决你的问题,请参考以下文章
Laravel CSRF - 419 页面因向其他网站的发布请求而过期