为什么在laravel 6中发送post请求时会显示错误419 "页面过期"?

11 浏览
0 Comments

为什么在laravel 6中发送post请求时会显示错误419 "页面过期"?

我安装了Laravel 5.7

在文件\resources\views\welcome.blade.php中添加了一个表单

@csrf

添加到文件\routes\web.php

Route::post('/foo', function () {
    echo 1;
    return;
});

发送POST请求后:

419 抱歉,您的会话已过期,请刷新页面后重试。

5.6版本中没有这个问题。

0
0 Comments

问题:为什么在laravel 6中发送post请求时会显示错误419“页面已过期”?

原因:

- 情况1:如果在本地系统上运行项目(如127.0.0.1:8000),需要在.env文件中添加SESSION_DOMAIN=,或者在config/session.php文件中添加'domain' => env('SESSION_DOMAIN', ''),,然后运行php artisan cache:clear

- 情况2:如果项目在服务器上运行,并且有类似于"mydomain.com"的域名,需要在.env文件中添加SESSION_DOMAIN=mydomain.com,或者在config/session.php文件中添加'domain' => env('SESSION_DOMAIN', 'mydomain.com'),,然后运行php artisan cache:clear

解决方法:

根据所在情况,在.env文件或config/session.php文件中添加相应的SESSION_DOMAIN配置,并运行php artisan cache:clear

对于没有php经验的人来说,这对于在AWS EC2实例上运行Web应用程序至关重要。谢谢!

0
0 Comments

在Laravel 6中发送POST请求时,为什么会显示错误419“页面已过期”?原因是因为表单需要一个csrf令牌。在5.7版本中,将其更改为<form action="" method="post">...。解决方法是在表单中添加csrf令牌。如果仍然出现相同的错误,可能是由于其他更改导致的。

0
0 Comments

问题的原因可能是csrf token验证失败,也可能是session驱动配置错误。解决方法包括检查表单中是否添加了csrf指令,检查session驱动配置是否正确,尝试切换session驱动,执行php artisan key:generate命令生成新的app key,清除浏览器缓存,避免使用SESSION_DOMAIN=...,并解释给用户出现错误的原因和解决方法。

0