首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话Id跨子域更改--通过AJAX调用时

问会话Id跨子域更改--通过AJAX调用时
EN

Stack Overflow用户
提问于 2019-01-26 05:06:22
回答 1查看 47关注 0票数 0

我有一个域名,example.com。在这个域上,我有两个子域,code.example.com和www.example.com.

我的php.ini文件中有以下一行:session.cookie_domain = ".example.com"

如果我在code.example.com上有一个简单的PHP页面来设置PHP变量,那么www.example.com上的页面可以读取该会话变量。

code.example.com/test.php

代码语言:javascript
复制
session_start();
$_SESSION["testa"] = "a";

www.example.com/test.php

代码语言:javascript
复制
session_start();
echo("session testa = " . $_SESSION["testa"]);

这是被证实的和有效的。它正确地响应,会话testa = a。

但是,如果我做同样的事情,但是这次如果我在www.example.com上有一个通过AJAX调用code.example.com/test.php的页面,当我在www.example.com/test.php,上读取session变量时,它会失败。会话变量不存在。

我通过使用Firefox中的Network > Cookies开发工具来跟踪这一点。我可以确认会话I确实不同,在通过AJAX执行此操作时没有正确传递。

在我的AJAX调用中,我有crossDomain: true,在我的header("Access-Control-Allow-Origin: *");文件中,有header("Access-Control-Allow-Origin: *");集。

我真是不知所措。

我所说的修改php.ini文件的所有搜索。但是,我已经做到了。跨域会话确实有效。只是不是通过AJAX调用的。

任何想法都会受到极大的赞赏。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-01-26 06:04:00

不包括“.”在顶级域名前面。此外,httprequestobject需要( bool ) obj.withCredentials = tree;用于对象访问跨域cookie。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54375807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档