我正在尝试在Chrome扩展程序中拦截代理授权。
按照这里的答案:Domain Authorization in Chrome Extension并阅读docs here我的代码如下:

chrome.webRequest.onAuthRequired.addListener(
    function(details, callbackFn) {
        console.log("onAuthRequired!", details, callbackFn);
        //callback({
        //    authCredentials: {username: "1", password: "__TestUse"}
        //});
    },
    {urls: ["<all_urls>"]}
);

问题是callbackFn是未定义的,但应该是一个函数。

任何人都知道为什么未定义callbackFn。当我阅读文档时,我做对了..

最佳答案

该代码有效,我只是忘了添加另一个参数['asyncBlocking']
这段代码可以正常工作:

chrome.webRequest.onAuthRequired.addListener(
    function(details, callbackFn) {
        console.log("onAuthRequired!", details, callbackFn);
        callbackFn({
            authCredentials: {username: "1", password: "__TestUser"}
        });
    },
    {urls: ["<all_urls>"]},
    ['asyncBlocking']
);

10-07 23:41