5

Я пишу код для аддона браузера Firefox, и я пытаюсь обновить значение файлов cookie с использованием хром API. При вызове метода 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

Объект {домен: ".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 за ответ. Я взял версию Firefox для ночной версии 48 и ее работоспособность без изменений кода. Но он не работает в выпуске выпуска версии 45. Скоро ли он будет исправлен в текущей версии? Я имел в виду веб-консоль Firefox. – sfbayman

+0

Я все еще получаю сообщение об ошибке после обновления значения URL с полным URL-адресом, включая протокол. Проверьте скриншот. https://www.dropbox.com/s/a96g66bj73uno8d/Screenshot%202016-04-10%2017.48.59.png?dl=0 – sfbayman

+0

Выход веб-консоли Firefox: скриншот: https://www.dropbox.com/ s/tt2hgglic56kq8c/Снимок экрана% 202016-04-10% 2018.23.42.png? dl = 0 – sfbayman

Смежные вопросы