我正在为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
答案 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
作为问题。你在看哪个控制台?