【问题标题】:laravel 5.8.7 Page expired (419)laravel 5.8.7 页面过期(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 文件中,&lt;?php echo action('TestsController@store'); ?&gt; 可以写成{{ action('TestsController@store') }}
  • 我是 laravel 新手,我不知道 @csrf.Thanks (y)

标签: php laravel laravel-5


【解决方案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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-22
        • 2022-06-11
        • 2020-09-28
        • 2021-04-22
        • 2021-08-30
        • 1970-01-01
        • 1970-01-01
        • 2020-01-06
        相关资源
        最近更新 更多