【发布时间】:2017-11-22 22:43:17
【问题描述】:
我正在向我的 Laravel API 发送 AJAX 发布请求并收到此错误消息:
compiled.php 第 13235 行中的 DecryptException: 负载无效。
我正在从 cookie 中读取 XSRF-TOKEN,并将其作为名为 X-XSRF-TOKEN 的请求标头发送。
该站点与 Laravel API 完全独立,但共享相同的会话,这就是我从 cookie 获取值的原因。
奇怪的是,有时它会起作用。任何想法是什么原因造成的?
【问题讨论】:
-
您发送的是
XSRF-TOKEN还是X-CSRF-TOKEN? -
我发送一个header名字:X-XSRF-TOKEN,值取自名为XSRF-TOKEN的cookie
-
发送
X-CSRF-TOKEN标头。XSRF-TOKENcookie 未加密,但 laravel 期望X-XSRF-TOKEN标头被加密。 -
查看这篇可能对您有帮助的帖子stackoverflow.com/questions/42408177/…
-
文档说明了这一点:Laravel 还将 CSRF 令牌存储在 XSRF-TOKEN cookie 中。您可以使用 cookie 值来设置 X-XSRF-TOKEN 请求标头。一些 JavaScript 框架,例如 Angular,会自动为您执行此操作。 - 这正是我正在做的事情。