我正在尝试制作一个简单的购物车,即使用户刷新页面或关闭选项卡并在另一个选项卡上重新访问网站,也可以将购物车项目存储在会话变量中并维护购物车中的项目。每当用户单击“添加到购物车”按钮时,就会向php文件触发AJAX发布请求,该文件会将产品信息添加到会话变量中。但是,当我刷新页面并尝试在index.php主页面上显示该会话变量时,该变量为空。每个文件的开头也有session_start();
。
发出AJAX发布请求的PHP文件:
<?php
session_start();
$product = NULL;
$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';
if ($contentType === "application/json") {
$content = trim(file_get_contents("php://input"));
$product = json_decode($content, true);
}
if(is_array($product)) {
$_SESSION["cart"] = $product["name"];
echo json_encode(['cartinfo' => $_SESSION["cart"]]); //I console log this JSON response in the javascript file and see product info successfully
}
index.php主页:
<?php
session_start();
echo $_SESSION["cart"]; //This is empty
Javascript:
function add() {
fetch("scripts/product.php", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Shirt"
})
})
.then(function(res) {
return res.json();
})
.then(function(jsonRes) {
console.log(jsonRes);
})
.catch(function(error) {
console.log(error);
});
}
什么可能导致此问题?