У меня возникли проблемы с получением информации cookie из домена A в домен B, используя jsonp. У меня есть работа для Chrome и Firefox и др., Но для IE это не работает. Я делаю запрос jsonp из домена B в домен A, который устанавливает cookie там через php в домене A, а затем я снова проверяю тот же файл cookie из B. Затем информация в cookie печатается на экран (домен A), поэтому я могу выбрать это из домена B и установить там cookie, который отражает эту информацию (я знаю о рисках безопасности, я не пытаюсь синхронизировать чувствительные информация здесь, только настройка).Получение значений cookie для перекрестного домена с использованием jsonp, не работающего для IE
Итак, как говорится, это работает на FF, Chrome и т. Д. Но в IE я вижу, что возвращаются только файлы cookie сеанса, которые я установил, не является (и не должен быть).
Не знаете, что здесь не так? Или это даже не возможно? Я также кратко попробовал CORS, но это имеет ту же проблему.
У меня есть следующие настройки: тестовый
Домен: (центральный домен)
login.php
<?php
//below line solves the problem. See accepted answer
header('P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"');
setcookie("loggedin","5",time()+3600);
echo 1;
check.php
<?php
//below line solves the problem. See accepted answer
header('P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"');
$cookies = implode('; ', array_map(function ($v, $k) { return $k . '=' . $v; }, $_COOKIE, array_keys($_COOKIE)));
if(isset($_COOKIE['loggedin'])&&($_COOKIE['loggedin'] == "5")) {
echo "alert('logged in, ".$cookies."');";
} else {
echo "alert('not logged in, ".$cookies."');";
}
Домен Б:
jsonp.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<h1>hi!</h1>
<script>
jQuery.ajax({
url: 'http://cookies.hidev.nl/login.php',
dataType: 'jsonp',
type: "get",
});
//note: first call will set the cookie, next succeeds only after reload due to async loading. This is only for test purposes
jQuery.ajax({
url: 'http://cookies.hidev.nl/check.php',
dataType: 'jsonp',
type: "get"
});
</script>
</body>
</html>