Получить значение JSESSIONID и создать Cookie в AngularJS
Я использую веб-RESTful API от моего клиента в AngularJS.
app.controller('LoginController', [
'$http',
'$cookies',
function($http, $cookies) {
this.credentials = {};
this.http = $http;
this.login = function() {
console.log(this.credentials);
var authdata = btoa(
this.credentials.username +
':' +
this.credentials.password
);
$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
console.log($http);
var res = $http.post("http://API_NAME/library");
res.success(function(data, status, header){
alert('Successfull func');
console.log($cookies.get('JSESSIONID'));
});
res.error(function(data, status, headers, config) {
console.log('Error Log');
});
};
},
]);
тогда у меня есть этот ответ HTTP-заголовков
Set-Cookie:JSESSIONID=azekazEXAMPLErezrzez; Path=/; HttpOnly
Я использую ngCookies для получения значения JSESSIONID, а затем создаю его вручную в своем браузере, но я не могу получить к нему доступ.
Я уже видел все сообщения об этом в StackOverflow, но они устарели или совершенно неясны.
Спасибо за ВАШ интерес и помощь.
1 ответов
вы не можете получить файлы cookie HttpOnly с помощью JavaScript. В этом вся цель флага HttpOnly.
тем не менее, вам не нужно. Файл cookie должен быть отправлен автоматически с любым запросом на тот же сервер. Если вы имеете дело с кросс-доменный XHR запросы, установить your_XHR_instance.withCredentials
до true
включить cookies.