我有小書籤。如果我打開一個隨機頁面(不是我的),然後單擊書籤,我想檢查用戶是否登錄到我的頁面上。跨域登錄檢查?
我已經在使用Access-Control-Allow-Origin進行跨域AJAX請求,但看起來好像沒有會話ID或Cookie發送到這裏。
有沒有辦法做到這一點?
我有小書籤。如果我打開一個隨機頁面(不是我的),然後單擊書籤,我想檢查用戶是否登錄到我的頁面上。跨域登錄檢查?
我已經在使用Access-Control-Allow-Origin進行跨域AJAX請求,但看起來好像沒有會話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);
你必須在credentials flag設置爲true,也是頭Access-Control-Allow-Credentials
參見這裏:Firefox: Cross-domain requests with credentials return empty
不要忘了添加刪除,並投入到訪問控制允許的方法,如果您使用REST –