У меня есть домен, example.com .В этом домене у меня есть два поддоменов: code.example.com и www.example.com .
В моем файле php.ini есть следующая строка:session.cookie_domain = ".example.com"
Если у меня есть простая страница PHP на code.example.com , которая устанавливает переменную сеанса PHP, то страница на www.example.com можетпрочитайте эту переменную сеанса.
code.example.com / test.php
session_start();
$_SESSION["testa"] = "a";
www.example.com / test.php
session_start();
echo("session testa = " . $_SESSION["testa"]);
Это доказано и работает.Это правильно повторяет, сеанс testa = a .
Однако, если я делаю то же самое, но на этот раз, если у меня есть страница на www.example.com это вызывает code.example.com / test.php через AJAX, когда я читаю переменную сеанса в www.example.com / test.php , происходит сбой.Переменная сеанса не существует.
Я проследил это, используя Сеть> Файлы cookie в Инструментах разработки в Firefox.Я могу подтвердить, что идентификаторы сессий действительно отличаются и не передаются корректно при выполнении этого через AJAX.
В моем вызове AJAX у меня есть crossDomain: true
, а в моих файлах PHP у меня установлено header("Access-Control-Allow-Origin: *");
.
Я действительно в растерянности.
Все поиски, которые я говорю, чтобы изменить файл php.ini.Но я сделал это.Сеансы между поддоменами работают.Только не при вызове через AJAX.
Любые идеи очень ценятся.
Спасибо!