PHP会话在ajax调用中为null

时间:2015-10-01 13:27:00

标签: php jquery ajax session

我有一个设置会话值的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会话无效

1 个答案:

答案 0 :(得分:-2)

你显然忘了回复

session_start();
$_SESSION["key"] = "myvalue";
echo $_SESSION["key"];

所以你的文件有一些输出到ajax