Cookie 未保存到 Chrome/Edge、本地主机或服务器

问题描述 投票:0回答:2

我正在尝试设置cookie,然后将其加载到下一页。我目前将项目添加到我的“购物车”中,并在检查日志和检查后,它们没有被记录到控制台,但实际上并未被设置。这是在 javascript 中,服务器在节点上。

const shoppingCart = [];

//Convery array to JSON string and set as cookie
function saveCartToCookie() {
  const cartJSON = JSON.stringify(shoppingCart);
  console.log("Saving cart to cookie:", cartJSON);
  document.cookie = `shoppingCart=${cartJSON}; path=/`;
}

function loadCartFromCookie() {
  const cookieData = document.cookie.split(';').find(cookie => cookie.trim().startsWith('shoppingCart='));
  if (cookieData) {
    const cartJSON = cookieData.split('=')[1];
    console.log("Loading cart from cookie:", cartJSON);
    shoppingCart.length = 0; // Clear the current cart
    shoppingCart.push(...JSON.parse(cartJSON)); // Load cart from cookie
  }
}

拉入我的html;

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm"
    crossorigin="anonymous"></script>
  <script src="../utils/cart.js"></script>

我尝试过 chrome、edge,以及将其托管在本地主机和我的 github 上。任何知道我哪里出错的想法将不胜感激!

json google-chrome cookies microsoft-edge
2个回答
0
投票

document.cookie = `shoppingCart=${cartJSON};路径=/`;

在您的代码中,我发现符号有问题。您应该使用单引号而不是反引号。应该是这样的:

document.cookie = 'shoppingCart=${cartJSON}; path=/';

0
投票

事实证明,我在处理我的项目时试图通过“//file”而不是 localhost 3000/其他方式保存 cookie。这就是问题的根源。文件不适用于 cookie!

© www.soinside.com 2019 - 2024. All rights reserved.