我正在尝试通过AJAX调用更新会话或cookie到同一域上的页面但我不断得到奇怪的结果。刷新页面后,当我希望旧会话保持不变时,会创建一个新会话。
从index.php调用AJAX:
$.ajax({
type: 'POST',
url: '/api/cart.php?function=GetCart',
dataType: 'json',
async: false,
data: {
json: true
},
success: function(cart) {
window.console.log(cart);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {}
});
cart.php中的PHP:
var_dump($_SESSION["test"]);
print("\n");
print("\n");
$_SESSION["test"] = rand(1, 999);
print("\n");
print("\n");
var_dump($_SESSION["test"]);
die();
首先刷新:
<b>Notice</b>: Undefined index: test in <b>cart.php</b> on line <b>xxx</b><br />
NULL
int(154)
第二次刷新:
<b>Notice</b>: Undefined index: test in <b>cart.php</b> on line <b>xxx</b><br />
NULL
int(981)
答案 0 :(得分:0)
php默认维护会话在ajax调用上,使用fn:isset()/ empty()来检查ajax调用的会话。如果会话过期再次登录。第二个选项是,您可以增加会话超时持续时间。 how-to-change-the-session-timeout-in-php