php - 跨域登录检查?

标签 php javascript cross-domain

我有书签。如果我打开一个随机页面(不是我的页面)并单击小书签,我想检查用户是否已登录我的页面。

我已经在使用 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/

相关文章:

javascript - 使用php检查AngularJS网页上是否存在某个字符串

php - PHP中查询MySQL的权限

php - 在我公司的 MySQL 数据库中加密客户信息的最佳方法?

javascript - 如何禁用过多的 actions-on-google 日志 - api.ai

PHP 查询表格不起作用?

javascript - 基于字符比较字符串

javascript - 如何在 AngularJS 中使用 jQuery

json - 跨域 $http 请求 AngularJS

jQuery AJAX 通过跨域发布到 https web api 操作

javascript - 从多级跨域 iframe 确定顶级窗口的 url