php cookies 域,php-从主域为子域设置cookie

我有一个网站,包含三个域:domain.com,sub1.domain.com和sub2.domain.com.

我现在想通过sub1.domain.com上的AJAX获得domain.com上设置cookie的页面.此cookie必须对所有三个域都可用.

我试过了:setcookie(‘name’,’value’,time()3600,’/’,’.domain.com’);我已经尝试过:setcookie(‘name’,’value’,time()3600,’/’,’domain.com’); (注意在域之前的圆点,我被告知旧的浏览器不会接受它.)但是,这没有用.实际上,没有cookie集.

如何在子域的AJAX请求上设置Cookie?我已经添加了标头(‘Access-Control-Allow-Origin:*’);到setcookie-page.

解决方法:

使用凭据时需要满足以下几点:

> withCredentials标志

AJAX请求需要具有xhr.withCredentials = true;组.

>访问控制允许凭证

服务器还必须使用标头(‘Access-Control-Allow-Credentials:true’);进行响应.

>不允许使用通配符

指定withCredentials时,服务器不能允许*的原点.因此,您必须使用有效域列表进行响应:

header('Access-Control-Allow-Origin: http://sub1.domain.com,http://sub2.domain.com');

如果您仍然希望拥有任意子域列表,则可以执行以下操作:

if (substr($_SERVER['HTTP_ORIGIN'], -11) === '.domain.com') {

header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);

}

这将允许的来源设置为Origin请求标头的值,但前提是它在您的域中.

标签:cookies,php

来源: https://codeday.me/bug/20191031/1974913.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值