首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript添加Cookie值作为对象,不像PHP添加Cookie值

Javascript添加Cookie值作为对象,不像PHP添加Cookie值
EN

Stack Overflow用户
提问于 2018-07-06 06:37:34
回答 1查看 35关注 0票数 -1

这是我的代码:

代码语言:javascript
复制
<?php
    $cookie = [
            'url' => (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null),
            'landing_page' => "//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}",
            'date' => date('Y-m-d H:i:s')
        ];

        setcookie("mycookie_".rand(1,1000), json_encode($cookie), time() + (86400 * 30), "/");

?>
<script>    
var random = Math.floor((Math.random() * 1000) + 1);

setcookie("first_interaction"+random,<?=json_encode($cookie)?>,365)
</script>

问题是"json_encode($cookie)“的值是如何作为Cookie值添加的,如下所示:

在Javascript中添加cookie时的值:

代码语言:javascript
复制
 [object Object]

在PHP中添加cookie时的值:

代码语言:javascript
复制
%7B%22url%22%3Anull%2C%22landing_page%22%3A%22%5C%2F%5C%2Fwww.site.com%5C%2FcookieTest.php%3Ftest%3Dtest%22%2C%22date%22%3A%222018-07-05+17%3A33%3A34%22%7D

我想让JS添加与PHP相同的cookie值...有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-07-06 06:42:46

代码语言:javascript
复制
setcookie("first_interaction"+random,<?=json_encode($cookie)?>,365)

这里的问题是您将原始json放入该方法调用中。当javascript被浏览器解析时,它会把它变成一个真正的对象,这很可能就是你看到[object Object]的原因。

我建议使用单引号将值括起来,这样javascript就会将其保留为字符串。

代码语言:javascript
复制
setcookie("first_interaction"+random,'<?=json_encode($cookie)?>',365)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51200767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档