【发布时间】:2019-02-01 14:29:06
【问题描述】:
我在使用 Laravel 和 Ajax 时遇到了一些问题,我无法通过 Google 或 Stackoverflow 解决这些问题。无论我看到什么解决方案,我都已经考虑过了。
我偶尔会收到 500 错误(有时是 401)。它只发生在 Ajax 上,这表明我没有正确发送 CSRF 令牌。
但 CSRF 会在每次页面加载时出现,并且该问题是在 4 天前开始的,而该项目大约有一个月的历史。它发生在 10 个 Ajax 调用中可能有 1 个。其他 9 个将执行得很好。
页面加载后立即调用 Ajax。 Laravel 是否有可能没有更新对传入 Ajax 调用的期望?没有其他 Ajax 调用会导致此问题。
laravel.log 说:
production.ERROR: No application encryption key has been specified. {"exception":"[object] (RuntimeException(code: 0): No application encryption key has been specified. at C:\\....\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php:42)
[堆栈跟踪]
这对我来说非常奇怪,原因有两个。首先,存在加密。如前所述,该项目已经存在很长时间,问题是零星的。其次,它说“production.ERROR”,但环境是本地的。我在 .env 文件中有这个:
APP_ENV=local
是否有人对如何解决或如何进一步调试问题有任何想法?我这里有点空白。
更新:这个问题肯定与页面加载时立即调用的 AJAX 调用有关。我刚刚在不同的项目中出现了完全相同的问题,项目中的所有其他 AJAX 调用都按预期工作;但是在页面加载时立即调用的那个会偶尔出现 401 和 500 失败。
【问题讨论】:
-
你确定你没有缓存配置吗?您为本地开发使用什么缓存和会话驱动程序?
-
@alariva 我没有配置任何东西,所以它会是正常 Laravel 发行版中开箱即用的任何东西。但是我在任何其他 ajax 调用或任何其他 Laravel 项目中都没有遇到过这种情况,所有这些都基于相同的 Laravel 安装:-/
-
你运行的是什么版本的 laravel、php 和 os?
-
另外,你能发布有问题的ajax调用、路由和控制器吗?
标签: ajax laravel http-status-code-500 laravel-environment laravel-encryption