使用PHP会话发送/获取请求的跨子域

时间:2014-06-07 20:14:23

标签: javascript php ajax session

我有一个页面m.mydomain.com/login.php(http / 80)页面使用jquery.ajaxForm发布/获取auth.mydomain.com/login.php(https/443)

header('Access-Control-Allow-Origin: m.mydomain.com');
ini_set('session.cookie_domain', '.mydomain.com');
session_start();

/**Login and db stuff there*/
if($allowed)
{
   $_SESSION['check_login'] = true;
   print 1;
}
else
{
   print 0;
}

所以在login.php中我得到了ajax调用" 1"的结果,但在访问$ _SESSION时我得到一个空数组。

代码:

ini_set('session.cookie_domain', '.mydomain.com');
session_start();

print_r($_SESSION);

在浏览器中定期调用auth.mydomain.com/login.php(https / 443)(使用GET请求)会导致登录m.mydomain.com/login.php(http / 80)

1 个答案:

答案 0 :(得分:0)

通过ajax执行请求时,您需要确保withcredentials对象中的true设置为xhr,以便随请求一起发送Cookie。