我有一个设置会话值的PHP页面:
session_start();
$_SESSION["key"] = "myvalue";
设置了值,如果我在我的文件浏览器中打开一个新标签sessions.php
,我会看到之前设置的值。
<?php
if(!session_id()) { // check if we have session_start() called
session_start();
echo "<br />session start";
}
if (!isset($_SESSION["key"]) ) {
echo "<br />session null";
} else {
echo "ok my session" . $_SESSION["key"] ;
}
?>
如果我从另一个页面打开同一个文件,在同一个选项卡中通过AJAX在同一个域名相同的文件夹中我有空会话。
$.ajax({
type: "POST",
url: "/php/sessions.php",
cache: false,
error: function (XMLHttpRequest, textStatus, errorThrown) {}
}).done(function(msg) {
alert(msg) // I get session null
});
修改 我使用php-5.6.10-nts-Win32-VC11-x64和IIS
EDIT2: 我意识到进行Ajax调用的中间页面位于同一个域中。所以这是因为Imy会话无效
答案 0 :(得分:-2)
你显然忘了回复
session_start();
$_SESSION["key"] = "myvalue";
echo $_SESSION["key"];
所以你的文件有一些输出到ajax