как получить файлы cookie из другого домена с помощью php и javascript

Предположим, у меня есть файл cookie, указанный в first.com. Теперь я хочу прочитать этот файл cookie на second.com через javascript и ajax. Но он не работает. У меня есть xmlHttp.status = 0.

образец кода

во втором домене readcookie.php file

var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); if(window.XMLHttpRequest) xmlHttp=new XMLHttpRequest(); } function readcookie(){ createXMLHttpRequest(); xmlHttp.open("GET","http://www.first.com/cookie.php",true); xmlHttp.onreadystatechange=getcookie; xmlHttp.send(null); } function getcookie(){ if(xmlHttp.readyState==4){ if(xmlHttp.status==200){ var reply=xmlHttp.responseText; if(reply){ alert(reply); } } else alert(xmlHttp.status); } } 

в первом файле cookie.php домена

 if(isset($_COOKIE['user'])){ echo $_COOKIE['user']; } else{ setcookie('user','a2345',0); echo $_COOKIE['user']; } 

Solutions Collecting From Web of "как получить файлы cookie из другого домена с помощью php и javascript"

Вы не можете читать файлы cookie из другого домена – конец.

Единственный способ, который я могу придумать, – добавить код ко второму домену, который получает файлы cookie для вас, а затем разместить его на странице в 1-м домене в iframe.

Очевидно, вам нужен полный доступ к обоим доменам, чтобы иметь возможность делать такие вещи.

Ваша проблема в том, что браузеры не позволят javascript получать доступ к другому домену. Добавить:

 header('Content-type: text/html'); header('Access-Control-Allow-Origin: *'); 

линии до начала файла cookie.php, и это сработает. Тем не менее, вы не получите cookie (или, по крайней мере, в Chrome). Я еще не мог понять, почему. Кажется, что chrome создает новый сеанс для javascript и не позволяет этому сеансу обращаться к предыдущим файлам cookie. Как HttpOnly.