2

我使用 Laravel 5.7.16 和 Angular2 创建了一个应用程序,并且在我的本地主机中一切正常。

但是,在实时服务器上,我在提交发布请求时收到“419 错误”。经过一些研究,我得出结论,这可能是由于 XSRF-TOKEN 的问题。然后,当比较我的本地主机和实时服务器上发生的事情时,我注意到实时服务器没有在初始请求上设置 XSRF-TOKEN cookie。

我没有在我的 Angular2 HTTP 发布请求上明确设置 XSRF-TOKEN,但据我了解,只要 XSRF-TOKEN cookie 最初由服务器端应用程序设置,Angular2 就会自动执行此操作。

有人对我如何解决这个问题有任何想法吗?

编辑:我刚刚尝试将我的应用程序发布路由之一添加到VerifyCsrfToken 的$except 数组中,并且有效。但是,这更多的是一种解决方法,而不是实际的解决方案。有趣的是,在执行了“允许”的路由之后,XSRF-TOKEN 被返回,其他所有路由都正常工作。我认为这强化了这样一种想法,即问题在于 XSRF-TOKEN 没有在初始应用程序加载中返回。为什么会这样?

谢谢你。

4

2 回答 2

2

您好,我在本地机器上遇到了同样的问题。XSRF-TOKEN cookie 未在浏览器上设置。我尝试了以下步骤并解决了问题。

  • 授予文件夹权限。sudo chmod -R 777 storage bootstrap/cache
  • 清除配置和应用程序缓存。 php artisan cache:clear && php artisan config:clear
于 2019-11-26T06:41:58.043 回答
1

尝试清除你的 Laravel 缓存

php工匠缓存:清除

还要清除浏览器 cookie 以确保没有存储会话?

于 2018-12-19T21:07:08.143 回答