2016-03-05 33 views
1

我试图设置一个cookie使用PHP CROS-DOMAIN,这意味着我的JS托管在其他域,JS调用PHP页面试图设置一块饼干。 (iPhone 6) 奇怪的是,我可以得到用户的cookies,但不设置(有时它设置一个空的cookie,0字节)Ajax:CROS-DOMAIN请求不使用PHP设置cookie与Safari IOS使用PHP

这是我的代码在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); 

我试图把*代替$原点,但它不工作。 另外我试图把这些声明放在我的.htaccess中,但它不起作用。 服务器:Apache PHP版本:几乎5.4.45

here are the headers from Safari

回答

1

Safari浏览器现在阻止所有来自未知域默认跨域的cookie。这句话的意思是:如果用户去example.com和他们从来没有去过cookie.com

Main Site: example.com 
Cookie Site: cookie.com 

,Safari浏览器不会允许他们来存储cookie.com的cookie。 如果用户访问example.com并且之前访问过cookie.com,则Safari将允许Cookie不提问。

这是默认策略,但您也应该在桌面上使用Safari以及Internet Explorer的新策略与P3P混淆。