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

时间:2016-04-03 16:58:34

标签: javascript firefox cookies firefox-addon firefox-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');
});

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

1 个答案:

答案 0 :(得分: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作为问题。你在看哪个控制台?