JavaScript -无法在扩展工作中获取chrome cookie

wwodge7n  于 2023-06-27  发布在  Go
关注(0)|答案(1)|浏览(131)

我正在制作一个饼干删除器,加法器和阅读器的东西,然而,似乎我不能让它工作。顺便说一下,我的manifest.json很好。这是在代码内。
这是我的代码。Background.js:

function getUserCookie(url, cookieName, callback) {
    chrome.cookies.get({ url: url, name: cookieName }, function(cookie) {
        if (cookie) {
            callback(cookie.value);
        } else {
            callback(false);
        }
    });
}

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.action == "getUserCookie") {
        getUserCookie(request.url, request.cookieName, function(cookie) {
            sendResponse(cookie);
        });
        return true; 
    }
});

在content.js中使用它的例子,它似乎没有检测到它们(顺便说一下,我正在尝试的cookie是httponly,如果有必要的话):

chrome.runtime.sendMessage({ action: "getUserCookie", cookieName: "example"}, function(response) {
console.log(response);
}

我试过很多方法,比如用其他方法做,我期待它能起作用,但它没有。

wfsdck30

wfsdck301#

也许这只是你问题中的一个错误的示例代码,但是如果你比较调用者代码和被调用者代码,你会看到下面的区别。
来电者:

chrome.runtime.sendMessage({ action: "getUserCookie", cookieName: "example"},

但在被调用方中,您期望:

if (request.action == "getUserCookie") {
    getUserCookie(request.url, request.cookieName, function(cookie) {

即,期望请求包含request.actionrequest.urlrequest.cookieName。但是,您只使用actioncookieName属性进行调用。我希望url参数对于chrome.cookies.get方法的工作至关重要。请确保将它传递给sendMessage,然后再传递给getUserCookie方法。
请让我知道这是否有帮助。

相关问题