【问题标题】:Set cookie from Laravel and get null from javascript从 Laravel 设置 cookie 并从 javascript 获取 null
【发布时间】:2017-07-24 14:11:37
【问题描述】:

每当我像这样从 Laravel 设置 cookie 时:

return redirect($this->redirectTo)->withCookie(cookie('token', auth()->user()->api_token, 60)); // set cookie for 60 minutes

我想像这样从 Javascript 中获取 cookie:

var token = localStorage.getItem('token');
console.log(token);

但它总是返回null

我很确定 cookie 已经在浏览器上设置,并且使用 cookie 管理器插件不为空。

有什么想法吗?

【问题讨论】:

标签: javascript php laravel cookies laravel-5.4


【解决方案1】:

你确定 Laravel cookie 存储在 localStorage 中吗?

要使用 JavaScript 获取 cookie,您可以使用 document.cookie


要按名称获取 cookie,您可以使用以下代码:

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

var token = getCookie('token');

console.log(token);

here复制的代码

【讨论】:

  • 输出为undefined
  • 这段代码console.log(document.cookie);的输出是什么?
  • 它正在工作。问题是因为这个cookie被设置为httponly。我在 laravel 中将 httponly 设置为 false ,它就像一个魅力。谢谢
【解决方案2】:

Cookie::queue($name, $value, $minutes); 这将使 cookie 排队以供稍后使用,稍后当响应准备好发送时,它将与响应一起添加。你可以查看 Laravel 网站上的文档。 更新(检索 Cookie 值):$value = Cookie::get('name');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多