我正在尝试设置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 上。任何知道我哪里出错的想法将不胜感激!
document.cookie = `shoppingCart=${cartJSON};路径=/`;
在您的代码中,我发现符号有问题。您应该使用单引号而不是反引号。应该是这样的:
document.cookie = 'shoppingCart=${cartJSON}; path=/';
事实证明,我在处理我的项目时试图通过“//file”而不是 localhost 3000/其他方式保存 cookie。这就是问题的根源。文件不适用于 cookie!