Я пытаюсь установить cookie с помощью PHP CROS-DOMAIN, что означает, что мой JS размещен в другом домене, JS-вызов на страницу PHP, который пытается установить cookie. Он работает во всех браузерах, кроме 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
По умолчанию Safari блокирует почти все междоменные файлы cookie из неизвестных доменов. Это означает следующее:
Main Site: example.com Cookie Site: cookie.com
Если пользователь перейдет на example.com, и они никогда не были на cookie.com, Safari не позволит им хранить cookie для cookie.com. Если пользователь перейдет на example.com и ранее был на cookie.com, Safari разрешит cookie без вопросов.
Это политика по умолчанию, однако у вас также должны быть проблемы с Safari на рабочем столе и новая политика Internet Explorer, которая работает с P3P.