未捕获的异常:未知(无法转换为字符串)

sfb*_*man 5 javascript cookies firefox firefox-addon firefox-addon-webextensions

我正在为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');
});
Run Code Online (Sandbox Code Playgroud)

API参考:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/cookies/set

小智 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');
});
Run Code Online (Sandbox Code Playgroud)

我将更新文档以明确说明这一点。

此外,异步函数通过设置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]
Run Code Online (Sandbox Code Playgroud)

...其中包括一个包含 的调用堆栈NetUtil_newURI(),这足以指出url问题所在。您在看哪个控制台?