我在AngularJS中有一个UI,用Java调用REST webservice。两者都部署在不同的域上。 Web服务和AngularJS都启用了CORS。
webservice返回cookie作为一个REST请求的一部分。 cookie中包含webservice域。
在我的AngularJS应用程序中,我将向服务器发出REST请求,然后必须读取作为响应返回的cookie。
如何阅读从该网络服务返回的cookie? 我已经读过我无法访问来自不同域的cookie。我还没有完全明白这实际上是如何运作的。
另一个问题是,如果我无法读取cookie,那么我可以从AngularJS应用程序为该域设置cookie并将其发送到Web服务吗?
答案 0 :(得分:5)
您无法通过JS访问其他域中的Cookie,并且根据Cookie的属性,可能无法从JS访问它们。 这完全由浏览器强制执行。
如果您使用的是另一个域上托管的API ,那么您可以考虑using tokens和local storage,然后使用HttpInterceptor 添加安全性在拨打电话时将令牌添加到标题中。
如果您的安全基础架构依赖于您拥有Cookie ,那么您将不得不使用某种可以在两个域上交换cookie的共享令牌。