我们正在使用AngularJS和Java Servlets开发RESTful Web服务。
当用户登录时,我们的后端发送一个“Set-Cookie”头到前端。在Angular中,我们通过$ cookies(ngCookie – module)访问页眉并设置它。
当用户登录时,我们的后端发送一个“Set-Cookie”头到前端。在Angular中,我们通过$ cookies(ngCookie – module)访问页眉并设置它。
现在用户已登录,他可以例如删除一些东西。因此,前端向后端发送GET请求。因为我们在不同的域上工作,我们需要设置一些CORS头,Angular在实际的GET请求之前做一个OPTIONS请求:
OPTIONS请求:
GET请求
我们通过$ http模块在Angular中这样做,但它不会发送包含JSESSIONID的cookie。
如何启用Angular发送Cookie?
解决方法
在你的配置中,DI $ httpProvider然后设置withCredentials为true:
.config(function ($httpProvider) { $httpProvider.defaults.withCredentials = true; //rest of route code }
有关angularjs的信息withCredentials:http://docs.angularjs.org/api/ng.$http
其中链接到mozilla文章:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control#section_5