保存了PHP会话文件,但没有读取cookie和会话

时间:2014-07-23 13:33:31

标签: javascript php ajax session cookies

我目前正在使用以下JavaScript将POST数据发送到我的网站:

example1.com

function buttonFunction() {
    $.post("http://example2.com/core/file.php",{username:username, password:pword, coins:coins}, function(data) {
        // Stuff
    });
}

然后在file.php example2.com内,我有以下内容来保存和阅读会话:

<?php
namespace Penguin;

session_start();
if(isset($_SESSION['money_maker'])) {
    echo "Cannot run.";
} else {
    $_SESSION['money_maker'] = getmypid();
    echo $_SESSION['money_maker'];
    echo "Running.";
}

header('Access-Control-Allow-Origin: http://example1.com');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

date_default_timezone_set('America/New_York');
error_reporting(0);

// REST OF THE PHP CODE

?>

正如我所看到的,我设置了一个会话(如果还没有设置),然后如果会话已经设置,脚本将回显“无法运行。”

但是,脚本永远不会回声“无法运行”。即使我在之前的AJAX运行中设置了会话。换句话说,会话未被“保存”。它总是输出“Running。”

HOWEVER ,在/var/lib/php5中,似乎正在创建会话文件,但我的浏览器中没有会话cookie。因此,当我尝试在我的PHP文件中对$_SESSION['money_maker']进行测试时,它总是输出它未设置。有什么帮助吗?

编辑1:

似乎问题出在AJAX请求中。当我尝试直接运行脚本时,会话保存完好(并且创建了cookie)。看起来当我尝试通过来自不同域的AJAX向PHP文件发送POST请求时,会话已设置(会话文件在/var/lib/php5中创建),但会话的cookie未创建。

在这种情况下,是否有任何修复?

0 个答案:

没有答案