2

次のコードは、何らかの理由で機能しません。

Background.js

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

マニフェスト.json

"permissions":["notifications"、 " https://mywebsite.com "、 "cookies"、 "http:// * / *"、 "https:// * / *"]、

alert( "1");のみ これまでに発砲します。Alert 2は決してそうしません、なぜ私のクロームクッキーがまったく発火しないのですか?

4

2 に答える 2

8

クッキーが設定されているかどうかをどこで確認しますか?console.log()代わりに使用してくださいalert()

サンプルコード

マニフェスト.json

バックグラウンドページを登録し、CookiesAPIの権限を付与しました。

{
    "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

cookies.htmlページにCookieを設定するための簡単なコード

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が設定されていることがわかります。

クリックして大きな画像

ここに画像の説明を入力してください

さらなるデバッグ

このサンプルコードが機能しない場合、chrome.extension.lastErrorとの値は何chrome.runtime.lastErrorですか?

于 2013-01-22T11:49:07.203 に答える
1

Cookieのアクセス許可を宣言したことを確認してください。

Cookie APIを使用するには、マニフェストで「Cookie」権限を宣言する必要があります。また、Cookieにアクセスするホストのホスト権限も宣言する必要があります。例えば:

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

ソース:developer.chrome.com

于 2013-01-21T22:10:30.190 に答える