我的应用正在从第三方网站抓取数据,其中需要首先登录才能抓取数据。问题是,会话到期,因此应用程序需要检查会话是否已过期。如果会话尚未到期,$ http的JSESSIONID cookie将与登录后返回的cookie相同。如果它已过期,则JSESSIONID的值会更改。
我打算做的是登录后,我会将JSESSIONID存储到localStorage。在$ http的每个请求之后,我将新的JSESSIONID与存储的JSESSIONID进行比较。如果用户不相同,我将重新关注用户(意味着会话已过期)。
然而,我无法获得cookie。它返回undefined。我也在想,是因为cookie在请求头而不是响应头?如果是的话,我怎么能得到它?
$http({
method: 'POST',
url: url,
data: params
}).then(function (response) {
console.log($cookies.get('JSESSIONID'));
callback.success(Parser.getGrades(response.data));
}, function (error) {
callback.error();
});
我已经包含了ngCookies,没有错误但是值未定义。 我尝试使用getAll()并返回:
Object {_ga: "GA1.1.1725476839.1445841661"}
$ httpProvider的配置:
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';