2014-05-14 251 views
0

我有一個頁面,負載事件請求一些服務,但爲了它的工作,它必須共享該服務設置的cookie(服務通過CAS進行身份驗證)。但由於不同的域(和端口如果存在),它不起作用。從服務器B讀取/獲取服務器A的Cookie

是否有任何方法來檢索/讀取cookie?儘管在加載請求時使用的頁面大部分都是在AngularJS中打包的。那麼也許有一些問題呢?

謝謝!

回答

0

第一步是將CORS HTTP headers添加到遠程服務。這將允許AJAX在不同的域和端口上調用遠程服務。您需要具體使用Access-Control-Allow-OriginAccess-Control-Allow-CredentialsAllow-Origin將特定哪些域允許遠程調用此服務。然後Allow-Credentials將允許處理認證cookie。

安裝完成後,您需要將AJAX選項withCredentials設置爲true。這會告訴Javascript發送包含請求的cookie。如果AngularJS發生這種情況,請看AngularJS withCredentials

+0

如果'Access-Control-Allow-Origin'標頭的值必須使用''*''怎麼辦? – Eugene

+0

@Eugene看看http://stackoverflow.com/questions/12001269/what-are-the-security-risks-of-setting-access-control-allow-origin它給出了一個體面的總結爲什麼使用通配符在生產中不是一個聰明的想法。 –

+0

我沒有使用它。它的設計,這種方式,並在目前的情況下改變它不是一種選擇。 – Eugene