You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Cookie的JSON数组中提取单个token变量传递给JavaScript

两种实现方案(从Cookie中提取token传递给JavaScript)

方案一:PHP端直接传递token给JavaScript

如果可以修改PHP代码,这种方式更高效且安全,不需要前端解析完整JSON:

<?php
// 读取并解析count Cookie
$token = '';
if(isset($_COOKIE['count'])){
    // 解析JSON为数组,第二个参数true确保返回数组而非对象
    $countData = json_decode($_COOKIE['count'], true);
    // 用null合并运算符处理token不存在的情况
    $token = $countData['token'] ?? '';
}
?>

<script>
// 直接获取PHP传递的token,addslashes避免特殊字符(如引号)引发语法错误
const token = '<?php echo addslashes($token); ?>';

// 后续可直接使用token变量
console.log(token);
</script>

方案二:前端JavaScript解析Cookie提取token

如果无法修改PHP代码,仅通过前端处理:

// 封装获取指定Cookie的工具函数
function getCookie(name) {
    const cookieStr = `; ${document.cookie}`;
    const cookieParts = cookieStr.split(`; ${name}=`);
    if (cookieParts.length === 2) {
        return cookieParts.pop().split(';').shift();
    }
    return '';
}

// 提取token
let token = '';
const countCookieValue = getCookie('count');
if (countCookieValue) {
    try {
        // 解析JSON字符串为对象
        const countData = JSON.parse(countCookieValue);
        token = countData.token || '';
    } catch (error) {
        // 处理JSON解析失败(如Cookie格式异常)的情况
        console.error('count Cookie解析失败:', error);
    }
}

// 使用token
console.log(token);

方案选择建议

  • 优先选方案一:PHP直接传递token,减少前端解析步骤,避免Cookie被篡改导致的解析异常,安全性更高。
  • 方案二适合无法修改后端代码的场景,需做好异常处理。

内容的提问来源于stack exchange,提问作者Миха

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:17:30