我有书签。如果我打开一个随机页面(不是我的页面)并单击小书签,我想检查用户是否已登录我的页面。
我已经在使用 Access-Control-Allow-Origin 进行跨域 AJAX 请求,但看起来这里没有发送 session ID 或 cookie。
有办法吗?
最佳答案
亚历克斯是对的!这里是完整的解决方案。 (它不适用于 IE8 和 IE9!)
你需要设置withCredentials在客户端。从 jQuery 1.5.1 开始,您可以像下面所示那样进行操作 (Source)。对于旧版本,请遵循 white rabbit .
$.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);
关于php - 跨域登录检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434940/