首页 > 解决方案 > 使用 JS 发布时 php setcookie 不起作用

问题描述

我有一个奇怪的问题 - 在我的网站https://www.example.com我有这个 JS 代码,由一些 JS 事件触发:

$.post( 'https://www.example2.com/api/save_cookie.php',
    { storageData: storageData },
    function(data) {console.log(data)}
);

https://www.exmaple2.com中,文件 save_cookie.php 如下所示:

$test = setcookie('test_cookie', '1', time() + (10 * 365 * 24 * 60 * 60), '/');
echo $test;

当我触发 JS 事件时,我可以在网络选项卡中看到一切正常,请求成功发送到 url https://www.exmaple2.com/api/save_cookie.php,我可以看到“1”从回调函数打印在控制台中。

但是在https://www.exmaple2.com , $_COOKIE['test_cookie'], 是null. 但是,如果我只是浏览 url www.exmaple2.com/api/save_cookie.php,然后检查变量$_COOKIE['test_cookie'],我可以看到值是“1”,正如预期的那样。任何想法为什么在使用 ajax 发布请求时未设置 cookie?

谢谢!

标签: javascriptphp

解决方案


推荐阅读