Webextensions API - 无法获取 POST 数据

Webextensions API - Can't get POST data

每次加载页面时,我都在尝试使用 Webextensions API 获取 POST 数据。

我添加了一个后台脚本,其中包含以下内容:

browser.webRequest.onBeforeSendHeaders.addListener( 
    getPostData, 
    { urls: ['<all_urls>'], types: ["main_frame"] }, 
    ['blocking', 'requestHeaders']
);

function getPostData( e )
{
    for( var header of e.requestHeaders )
    {
        console.log( header.name + ' = ' + header.value );
    }
}

但不幸的是,我得到以下 headers,其中不包含 POST 数据:

有没有办法使用 WebExtensions API 获取 POST 数据?

好的,我找到了答案。我只需要使用 onBeforeRequest, instead of onBeforeSendHeaders:

browser.webRequest.onBeforeRequest.addListener( 
    getPostData, 
    { urls: ['<all_urls>'], types: ["main_frame"] }, 
    ['blocking', 'requestBody']
);

然后,在getPostData里面,我可以访问e.requestBody.formData

希望对以后的人有所帮助。