Получить значение 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.