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

qrjkbowd  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(120)

我正在尝试设置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,以及在localhost和我的github上托管它。如果你能告诉我哪里错了,我会非常感激的!

e0bqpujr

e0bqpujr1#

document.cookie = shoppingCart=${cartJSON}; return/;
在你的代码中,我发现了一个符号问题。你应该使用单引号而不是反引号。应该是这样的:

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

lpwwtiir2#

原来我在通过文件协议(file://)而不是使用localhost(localhost:3000/whatever)处理项目时试图保存cookie。文件协议不适用于Cookie!

相关问题