Следующий код не работает по какой-то причине:

Background.js

alert("1");
chrome.cookies.set({ url: "https://mywebsite.com", name: "SuperDuperTest" });
alert("2");

Manifest.json

«разрешения»: [«уведомления», «https://mywebsite.com», «куки», «http: // * / *», «https: // * / *»],

Только оповещение («1»); когда-либо пожары Alert 2 никогда не срабатывает, почему мои chrome cookie не срабатывают вообще?

2
Stan Lindsey 22 Янв 2013 в 02:01

2 ответа

Лучший ответ

Где вы хотите проверить, установлен ли ваш файл cookie или нет? Пожалуйста, используйте console.log() вместо alert()

Образец кода

Manifest.json

Зарегистрированная фоновая страница и предоставленные разрешения для Cookies API.

{
    "name": "Cookie API Demo",
    "version": "1",
    "description": "http://stackoverflow.com/questions/14448039/chrome-cookies-set-doesnt-even-run",
    "permissions": [
        "cookies",
        "<all_urls>"
    ],
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "manifest_version": 2
}

Background.js

Тривиальный код для установки файла cookie для страницы cookies.html

chrome.cookies.set({
    "name": "Sample1",
    "url": "http://developer.chrome.com/extensions/cookies.html",
    "value": "Dummy Data"
}, function (cookie) {
    console.log(JSON.stringify(cookie));
    console.log(chrome.extension.lastError);
    console.log(chrome.runtime.lastError);
});

Выход

Перейдите на страницу https://developer.chrome.com/extensions/cookies.html и откройте инструменты разработчика, как показано здесь, вы можете видеть, что cookie устанавливается !.

Нажмите для увеличения изображения

enter image description here

Дальнейшая отладка

Если этот пример кода не работает, каковы значения chrome.extension.lastError и chrome.runtime.lastError?

8
Sudarshan 22 Янв 2013 в 11:49

Убедитесь, что вы объявили разрешение на использование файлов cookie.

Чтобы использовать API cookie, вы должны объявить в своем манифесте разрешение «куки», а также разрешения хостов для любых хостов, чьи куки вы хотите получить доступ. Например:

{
  "name": "My extension",
  ...
  "permissions": [
    "cookies",
    "*://*.google.com"
  ],
  ...
}

Источник: developer.chrome.com

2
P1nGu1n 21 Янв 2013 в 22:10