我试图通过对同一域上的页面的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)
php默认维护ajax调用上的会话,使用fn:isset()/pempty()检查ajax调用的会话。如果会话过期,请再次登录。第二个选项是,您可以增加会话超时时间。如何在php中更改会话超时