Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax:CROS-DOMAIN请求未使用PHP通过Safari IOS设置Cookie_Php_Ajax_Cookies_Safari_Cross Domain - Fatal编程技术网

Ajax:CROS-DOMAIN请求未使用PHP通过Safari IOS设置Cookie

Ajax:CROS-DOMAIN请求未使用PHP通过Safari IOS设置Cookie,php,ajax,cookies,safari,cross-domain,Php,Ajax,Cookies,Safari,Cross Domain,我试图使用PHPCros-DOMAIN设置cookie,这意味着我的JS托管在另一个域中,即试图设置cookie的对PHP页面的JS调用。 它适用于除手机Safari之外的所有浏览器(iPhone 6) 奇怪的是,我可以访问用户cookie,但不能设置(有时它会设置一个空cookie,0字节) 以下是我在php文件中的代码: header('Access-Control-Allow-Origin: '.$origin); header('Access-Control-Allow-

我试图使用PHPCros-DOMAIN设置cookie,这意味着我的JS托管在另一个域中,即试图设置cookie的对PHP页面的JS调用。 它适用于除手机Safari之外的所有浏览器(iPhone 6) 奇怪的是,我可以访问用户cookie,但不能设置(有时它会设置一个空cookie,0字节)

以下是我在php文件中的代码:

header('Access-Control-Allow-Origin: '.$origin);        
header('Access-Control-Allow-Methods: POST, OPTIONS, GET, PUT');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: X-Requested-With');
header('Access-Control-Max-Age: 1728000');
setcookie("display_session_id", "1234", time() + (60 * 43800), "/", '.mydomain.com', false);
我试着用*代替$origin,但没用。 我还试图将这些声明放在.htaccess中,但没有成功。 服务器:Apache PHP版本:5.4.45


Safari现在默认情况下会阻止来自未知域的几乎所有跨域cookie。这意味着:

Main Site: example.com
Cookie Site: cookie.com
如果用户访问example.com但从未访问过cookie.com,Safari将不允许他们为cookie.com存储cookie。 如果用户访问example.com并且以前访问过cookie.com,Safari将允许cookie不被询问

这是默认策略,但是您也应该对桌面上的Safari和Internet Explorer的新策略有问题,这会干扰P3P