Как получить доступ к файлам cookie в расширении Chrome?

#javascript #cookies #google-chrome-extension

#javascript #файлы cookie #google-chrome-extension

Вопрос:

Мои разрешения выглядят следующим образом:

 "permissions": [
  "http://localhost:8000/*",
  "http://127.0.0.1:8000/*",
  "cookies",
  "bookmarks"]
  

И я могу делать запросы к API, используя withCredentials. Это, очевидно, означает, что разрешения хоста верны, иначе я бы получил ошибку CORS. Проблема в том, что:

 chrome.cookies.getAll({ url: 'http://127.0.0.1:8000' }, (result) => console.log(result)); 
  

возвращает пустой список. Я также пробовал: «://127.0.0.1:8000 /«, но безуспешно. Документация MDN (я использую Chrome, но ее документация действительно скудна, говорится, что:

http://www.example.com/

  1. Дополнение с этим разрешением хоста может:

  2. Прочитайте незащищенный файл cookie для www.example.com , любым путем. Прочитайте незащищенный файл cookie для .example.com с любым путем.

  3. Напишите защищенный или небезопасный файл cookie для www.example.com любым путем.

  4. Напишите безопасный или небезопасный файл cookie для .example.com любым путем.

Итак, мой файл разрешений выглядит правильно. Я запрашиваю файлы cookie из background.js файл. Файлы cookie не являются пустыми для запрашиваемого сайта.

Комментарии:

1. Код правильный, и он работает для меня, поэтому проблема может быть в другом.

2. Спасибо за ваш ответ. Возвращает ли это список файлов cookie для веб-сайта или пустой список?

3. Да, как я уже сказал, у меня это работает.

4. Это довольно странно. Я создал тестовый проект только с этими настройками: github.com/fatalispm/cookie-test/commit/… . Это не работает.

5. Я не указывал порт в permissions , хотя, AFAIK, он там не нужен.

Ответ №1:

Проблема в следующей строке:http://127.0.0.1:8000 /, вам не нужно указывать порт в настройках. «http://127.0.0.1 /»работает просто отлично, и я могу читать cookies. Если вам нужен доступ ко всем cookies, вы можете просто использовать <all_urls>.