Get JSESSIONID value and create Cookie in AngularJS

All we need is an easy explanation of the problem, so here it is.

I’m using a Web RestFUL API from my client in 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');
        });
     };
   },
]);

Then, i have this Http headers Response

Set-Cookie:JSESSIONID=azekazEXAMPLErezrzez; Path=/; HttpOnly

I’m using ngCookies to get the JSESSIONID value and then create it manually in my browser, but i can’t access it.

I already saw all the posts about this in StackOverflow, but they are deprecated or completely unclear.

Thanks for your interest and help.

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

You can’t get HttpOnly cookies with JavaScript. That is the whole purpose of the HttpOnly flag.

That said, you shouldn’t need to. The cookie should be sent automatically with any request to the same server. If you are dealing with cross-origin XHR requests, set your_XHR_instance.withCredentials to true to include cookies.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply