Алекс прав! Здесь полное решение. (Это не работает с IE8 и IE9!)
Вам необходимо установить withCredentials на стороне клиента. Начиная с jQuery 1.5.1 вы можете сделать это, как показано ниже ( Source ). Для более старой версии следуйте за белым кроликом .
$.ajax({
url: a_cross_domain_url,
xhrFields: {
withCredentials: true
}
});
На стороне сервера вы должны разрешить установку параметров, разрешить учетные данные и разрешить отправку. Подстановочные знаки недопустимы! Но вы можете прочитать происхождение из заголовка запроса:)
// auto adapted Access Control to origin from request header.
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
if ($header == 'Origin')
header('Access-Control-Allow-Origin: ' . $value, true);
}
// send cookies from client
header('Access-Control-Allow-Credentials: true', true);
// allow all methods
header('Access-Control-Allow-Methods: GET, POST, OPTIONS', true);