【问题标题】:Can we read Laravel cookies in jQuery and vice versa?我们可以在 jQuery 中读取 Laravel cookie,反之亦然吗?
【发布时间】:2017-11-21 14:05:39
【问题描述】:

我正在从事将大量信息存储在 Cookie 中的项目。 我们使用了 PHP Laravel 5.2 框架和 jQuery 库 1.9。一切正常,但是当尝试使用 jQuery 读取使用 Laravel PHP 代码创建的 cookie 时,它​​什么都不返回,但在浏览器 cookie 中检查并使用 PHP Laravel 读取时,它工作正常

Laravel 代码:

Cookie::queue('COOKIE_NAME', $value, $minutes); //Create a cookie

jQuery 代码:

var cookieValue = $.cookie("COOKIE_NAME"); //Return nothing

【问题讨论】:

  • 只要 cookie 共享相同的域和路径,就可以。检查控制台以确保是这种情况。
  • 是的,它在同一个域中
  • 如果在同一个域,你应该检查cookies path scontent.fhan5-1.fna.fbcdn.net/v/t1.0-9/…
  • Cookies 路径也相同,因为我在索引页面上使用
  • Cookie::queue 试试这个Cookie::queue(Cookie::forever($name, $value));

标签: php jquery cookies laravel-5 jquery-cookie


【解决方案1】:

经过几分钟的测试,我发现了这个Is it possible to read HTTPONLY cookies with jQuery?。这意味着您无法读取 HttpOnly cookie,因此您应该将 compactcookie 值改为视图或使其可用,但我猜您将处理安全问题。

Cookie::queue('COOKIE_NAME', 'MyValue', 60, null, null, false, false);

通过这种设置,您可以使用 jquery cookie 读取您的 cookie。

P/S:Cookies值会使用base64加密,所以使用前需要解密。

希望有帮助

【讨论】:

    【解决方案2】:

    您可以发出ajax 请求以从您的控制器中检索cookie,也可以创建一个元标记

    <meta name="cookie" content="{{ cookie_function() }}" />
    

    在您的 Blade.php 文件中。然后使用jquery

    var cookieValue = $('meta[name="cookie"]').attr('content');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多