5

Firefox ブラウザ アドオンのコードを書いており、chrome API を使用して Cookie の値を更新しようとしています。chrome.cookies.set メソッドの呼び出し中に、コンソールに次のエラーが返されます。

エラー: キャッチされない例外: 不明 (文字列に変換できません)

var finalCookieObj = { 
    domain: ".qa.soul.com", 
    name: "aaa", 
    value: "as", 
    path: "/", 
    httpOnly: false, 
    url: "qa.soul.com/", 
    expirationDate: 1459788960 
};

chrome.cookies.set(finalCookieObj, function(cookie) {
    console.log('added cookie');
});

API リファレンス: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/cookies/set

4

1 に答える 1

2

url問題は、プロトコルを含む完全修飾 URL である必要があることだと思います。このバージョンは動作します:

var finalCookieObj = { 
    domain: ".qa.soul.com", 
    name: "aaa", 
    value: "as", 
    path: "/", 
    httpOnly: false, 
    url: "https://qa.soul.com/", 
    expirationDate: 1459788960 
};

chrome.cookies.set(finalCookieObj, function(cookie) {
    console.log('added cookie');
});

これについて明示するようにドキュメントを更新します。

また、非同期関数はchrome.runtime.lastErrorを設定してエラーを報告します。コールバックでこれを確認することを常にお勧めします。

面白いことに、別のコンソール出力が表示されます。次のようなエラーが表示されます。

[Exception... "Component returned failure code: 0x804b000a 
(NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]"  nsresult:
"0x804b000a (NS_ERROR_MALFORMED_URI)"  location: "JS frame
:: resource://gre/modules/NetUtil.jsm :: NetUtil_newURI ::
line 191" data: no]

... を含むコール スタックが含まれており、問題としてNetUtil_newURI()を指摘するのに十分でした。urlどのコンソールを見ていますか?

于 2016-04-09T21:20:23.197 に答える