Get cookies with javascript

12,476

Issue

Your problem here is that you probably aren't using the correct permissions. To get cookies from a certain url/page you'll need to use the chrome.cookies API. This API needs the permissions for "cookies" and all the URLs you want to retrieve cookies from.

Solution

In your manifest.json, request the permissions you need. If you want to retrieve cookies from all the sites, you can use the "<all_urls>" permission. Or, if you want cookies only from that site you can use, for example, "http://luptaonline.com/*. I also noticed that you are using the chrome.tabs API, so the permissions in manifest.json should look like this:

...
"permissions": [
    "cookies",
    "tabs",
    "<all_urls>"
],
...

Now, in your background.js, you can easily call the chrome.cookies.get() method to retrieve the PHPSESSID cookie, like this:

var myUrl = "http://luptaonline.com/player/"; // assuming that this is the url

chrome.cookies.get({url: myUrl, name: 'PHPSESSID'}, function(cookie) {
    // do something with the cookie
    console.log(cookie);
    alert(cookie.name + ' found, value: ' + cookie.value);
});

Running the above code you'll get what you want. Here are some screenshot of the results:

Console log:

log

Cookie alert:

alert

Working example

You can download a working example of the extension HERE.

Documentation

You may find this documentation links helpful:

Share:
12,476
Victor Dolganiuc
Author by

Victor Dolganiuc

Updated on June 04, 2022

Comments

  • Victor Dolganiuc
    Victor Dolganiuc almost 2 years

    I am making a Chrome extension and i need to get PHPSESSID from cookies.

    When I type document.cookie in console I get the cookies of the page but not PHPSESSID but when i open EditThisCookie the PHPSESSID is shown:

    Console + EditThisCookie

    How can I get the PHPSESSID value?

    I tried

    function getPHPSESSID() {
      var url = tab.url;
      chrome.cookies.get({"url": url, "name": 'PHPSESSID'}, function(cookie) {
        alert(cookie.value);
      });
    }