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

+1

请分享'finalCookieObj'的值,因为它很可能是此对象中有问题的字段之一。 – dovetalk

+0

Object {domain:“.qa.soul.com”,名称:“aaa”,值:“as”,路径:“/”,httpOnly:false,url:“http://www.qa.soul.com/page1“,expirationDate:1459788960} – sfbayman

+0

这个例子中的'chrome'是什么?我只问,因为你说你使用FF插件? – Andy

回答

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的问题。你在看哪个控制台?

+0

感谢@wbamberg的回复。我已经采取了火狐每晚生成版本48和它的工作正常,无需更改代码。但是它在生产发布版本45中不起作用。它会在当前版本中很快被修复吗?我指的是Firefox Web控制台。 – sfbayman

+0

在使用完全限定的URL(包括协议)更新url值后,我仍然收到错误。请检查截图。 https://www.dropbox.com/s/a96g66bj73uno8d/Screenshot%202016-04-10%2017.48.59.png?dl=0 – sfbayman

+0

Firefox Web控制台输出: 屏幕截图:https://www.dropbox.com/ s/tt2hgglic56kq8c /截图%202016-04-10%2018.23.42.png?dl = 0 – sfbayman

相关问题