我目前正在制作一个连接到服务器上的php文件的网页游戏,以获取某些值(这是为了隐藏最终用户的一些代码)。服务器将在其中创建会话和存储值。这也意味着它会将会话ID存储在cookie中。
问题是,如果我在与php文件不同的域上运行,则cookie内的值不会被设置。例如:
这将有效:
Javascript address: "http://www.example.com/js/main.js"
PHP address: "http://www.example.com/php/main.php"
这将有效:
Javascript address: "http://example.com/js/main.js"
PHP address: "http://example.com/php/main.php"
这不起作用:
Javascript address: "http://example.com/js/main.js"
PHP address: "http://www.example.com/php/main.php"
这不起作用:
Javascript address: "http://www.example.com/js/main.js"
PHP address: "http://example.com/php/main.php"
我已经启用了CORS,并且PHP文件可以成功返回值,如果域名不同,则不会设置会话ID(不是' www&#39 ;实际上被视为不同的域...)。现在,我正在考虑强迫用户使用JavaScript转到目标网址。虽然这有效,但我觉得这更像是一个黑客而不是一个正确的解决方案,并寻找一个更清洁/正确的解决方案。
答案 0 :(得分:0)
您需要在Set-Cookie
标题中指定域名,例如
Set-Cookie: name=value; domain=example.com
显然,这只适用于同一域的子域,您不能在完全不同的域之间共享Cookie。更多示例here。