我在Laravel和Ajax上遇到了一些麻烦,但我无法摆脱Google或Stackoverflow的困扰。无论我看到什么解决方案,我都已经考虑了。
偶尔会出现500错误(有时是401)。它仅在Ajax中发生,这表明我没有正确发送CSRF令牌。
但是CSRF加载在每个页面上,问题开始于4天前,而该项目大约有一个月的时间。这可能发生在十分之一的Ajax调用中。其他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)
[stacktrace]
哪个对我来说很奇怪,原因有两个。首先,存在加密。如前所述,该项目已经存在很长时间了,这个问题是零星的。其次,它说“ production.ERROR”,但是环境是本地的。我在.env文件中有此文件:
APP_ENV=local
有人对如何解决或进一步调试问题有任何想法吗?我在这里有点空白。
更新:该问题肯定与页面加载后立即调用的AJAX调用有关。我刚刚在另一个项目中发生了完全相同的问题,该项目中的所有其他AJAX调用都按预期运行。但是,在页面加载时立即调用的那个失败,偶尔会出现401和500。
答案 0 :(得分:0)
对于可能仍然存在此问题的任何人,请尝试以下操作:
php artisan config:clear