我正在尝试设置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上托管它。如果你能告诉我哪里错了,我会非常感激的!
2条答案
按热度按时间e0bqpujr1#
document.cookie =
shoppingCart=${cartJSON}; return/
;在你的代码中,我发现了一个符号问题。你应该使用单引号而不是反引号。应该是这样的:
lpwwtiir2#
原来我在通过文件协议(
file://
)而不是使用localhost(localhost:3000/whatever
)处理项目时试图保存cookie。文件协议不适用于Cookie!