⑴ thinkphpcookie设置domain不生效
thinkphpcookie设置domain不生效的原因如下。
1、domain参数设置错误:在设置cookie的domain参数时,需要确保它的值是正确的域名格式,比如example.com。如果domain参数设置不正确,浏览器是不会接受该cookie的。
2、设置的域名与当前域名不匹配:如果您在本地开发环境中设置了cookie的domain参数,但是在实际生产环境中使用了不同的域名,那么cookie就不能跨域传递了。
3、浏览器设置阻止了cookie:有些浏览器可能会阻止cookie的设置,可以检查浏览器的cookie设置,确保它们没有被禁用。
⑵ php js跨域请求,并设置cookies
首先要说的是,阁下的问题看起颇费神,中文英文符号混杂,大小写混杂,让阅读者看起相当吃力。
其次,你跨域,JS不能使用POST和GET请求的,这是浏览器安全规则,不过可以使用其它办法来获得类似结果。
JS跨域,POST可以通过提交隐藏表单至隐藏框架页来得到请求结果。而GET请求则可以在目标地址后面加上要请求的GET参数然后抓取目标页的所有网页内容,再通过正则处理获得结果;也可以使用JSON来获取(详情请自行学习JSON,很简单的)。
阁下的问题,只是获取COOKIE时间,那么可以直接通过JS抓取目标页或JSON获得。而B域名的cookies.php,完全不需要访问index.php来获得上一个COOKIE的时间,因为它们是同一个站,index.php能访问到的COOKIE,cookies.php也能访问到。
B域名的cookies.php参考如下(仅供参考,具体请根据自己情况另行写代码):
if(isset($_COOKIE["user"]))//
$time=$_COOKIE["user"];//
else
$time=0;//
$_COOKIE["user"]=time();
echo$time;
//或输出JSON,请自行学习
终上,仅是提供一个思路,更多的还是要靠阁下自行摸索学习。
另外,这种跨域请求,建议使用JSON,因为它简单方便。当你学会了,就表示你会写接口和使用接口了(虽然这个只是最简单的接口)。当然除了JSON还可以使用XML,只是性能稍差一些,也不错
⑶ thinkphp6解决 CORS 跨域
1,在app/middleware.php中添加
中间件,这样就改成了
*是不安全的,可冲早以在config/cookie.php配置cookie 有效域名的domain
如果接口闷判凳请求发送了token,会提示Access-Control-Allow-Headers这个问题蚂旅,tp6默认是这样
可以在'Access-Control-Allow-Headers' 这一样加上XXX-token,
我在搞这个时还遇见post请求变成get
把method改成了type