#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, но ее документация действительно скудна, говорится, что:
-
Дополнение с этим разрешением хоста может:
-
Прочитайте незащищенный файл cookie для www.example.com , любым путем. Прочитайте незащищенный файл cookie для .example.com с любым путем.
-
Напишите защищенный или небезопасный файл cookie для www.example.com любым путем.
-
Напишите безопасный или небезопасный файл 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>.