从其他域的服务器读取cookie

时间:2015-01-05 16:32:11

标签: javascript angularjs web-services rest cookies

我在AngularJS中有一个UI,用Java调用REST webservice。两者都部署在不同的域上。 Web服务和AngularJS都启用了CORS。

webservice返回cookie作为一个REST请求的一部分。 cookie中包含webservice域。

在我的AngularJS应用程序中,我将向服务器发出REST请求,然后必须读取作为响应返回的cookie。

如何阅读从该网络服务返回的cookie? 我已经读过我无法访问来自不同域的cookie。我还没有完全明白这实际上是如何运作的。

另一个问题是,如果我无法读取cookie,那么我可以从AngularJS应用程序为该域设置cookie并将其发送到Web服务吗?

1 个答案:

答案 0 :(得分:5)

您无法通过JS访问其他域中的Cookie,并且根据Cookie的属性,可能无法从JS访问它们。 这完全由浏览器强制执行。

如果您使用的是另一个域上托管的API ,那么您可以考虑using tokenslocal storage,然后使用HttpInterceptor 添加安全性在拨打电话时将令牌添加到标题中。

如果您的安全基础架构依赖于您拥有Cookie ,那么您将不得不使用某种可以在两个域上交换cookie的共享令牌。