【问题标题】:I can't read with AngularJS a Cookie created in PHP我无法使用 AngularJS 读取在 PHP 中创建的 Cookie
【发布时间】:2016-04-06 05:25:59
【问题描述】:

您好,我在 PHP 中创建了一个 Cookie:

setcookie( $name, $value, time() + $expire, '/', Host::$domain, isset ( $_SERVER["HTTPS"] ) , 真);

域是“127.0.0.1”,因为我没有网站,我正在 XAMPP 中进行测试。 所以,在索引上我用 var_dump 显示 $_COOKIE,我看到了创建的 cookie,但我想在 AngularJS 上获取 Cookie 数据,所以我这样做:

警报 ($cookieStore.get('test'));

这给出了未定义,但如果我从 AngularJS 创建一个 cookie

$cookieStore.put('test','sugi pula');

警报将显示文本。 问题是,我如何读取从 PHP 创建的 Cookie?

【问题讨论】:

    标签: javascript php angularjs cookies


    【解决方案1】:

    php setcookie 函数的最后一个参数是httponly。这使得 cookie 无法被 javascript 访问。如果您将其设置为 false,您应该能够访问 cookie。

    检查您的浏览器开发工具,看看 cookie 是否设置为 httponly。

    【讨论】:

    • 现在我从 Angular 得到错误,SyntaxError: Unexpected token [first letter from cookie]
    • 在这种情况下,您似乎希望使用 $cookies 对象,而不是 $cookieStore。 $cookieStore 尝试将 cookie 的值解析为 JSON。因此,如果您执行警报($cookies.test),它应该可以工作。 $cookies documentation
    【解决方案2】:

    您可以使用 ngCookies 中的 $cookies.get(<name of cookie>); 来获取 cookie 的值,记住它应该存储在键值对中,所以理想情况下是 $cookies.get(key);

    官方文档是here

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 2015-10-18
      • 2018-03-05
      • 1970-01-01
      相关资源
      最近更新 更多