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

如何检测空cookie并按需调用getCart获取cart_guid写入cookie

你可以按照以下步骤实现需求:

1. 先实现通用的cookie获取工具函数

用来读取指定名称的cookie值:

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}

2. 扩展cartHelper增加检查逻辑

给cartHelper新增封装好的检查+初始化方法,避免重复写判断逻辑:

let cartHelper = {
  cartCookieName: "_cart",

  getCart: function (callback = undefined) {
    return apiHelper.getRequest(
      "/carts",
      (response) => {
        // 建议加path=/,避免站点不同路径下cookie不共享的问题
        document.cookie = `${this.cartCookieName}=${response.data.attributes.cart_guid}; path=/`;
        if (callback) { callback(); }
      },
    )
  },

  // 新增检查+初始化方法
  ensureCartGuid: function(callback = undefined) {
    const currentCartGuid = getCookie(this.cartCookieName);
    // 同时覆盖cookie不存在、值为空两种无效场景
    if (!currentCartGuid) {
      return this.getCart(callback);
    }
    // 已有有效cartGuid直接执行回调
    if (callback) {
      callback();
    }
  }
}

3. 按钮点击事件绑定

点击按钮时直接调用封装好的方法即可:

// 替换为你实际的按钮DOM选择器
document.querySelector('#yourButtonId').addEventListener('click', () => {
  cartHelper.ensureCartGuid(() => {
    // 这里写点击按钮需要执行的后续逻辑,执行时已经保证cartGuid存在
  });
});

内容的提问来源于stack exchange,提问作者magic bean

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:18:03