9

我正在尝试在我的 Chrome 扩展程序中使用 webrequest api。使用以下代码块:

$(document).ready(function(){

chrome.webRequest.onBeforeRequest.addListener(
    function(details)
    {
        console.log(details.requestBody);
    },
    {urls: ["https://myurlhere.com/*"]}
);});

控制台显示 requestBody 未定义。如果我自己记录详细信息,我可以检查详细信息对象,但我似乎无法在任何地方找到 requestBody 对象。

我的语法错了吗?我进行了一些搜索并找到了其他几个示例,它似乎应该按照我的方式工作。任何帮助表示赞赏。

4

2 回答 2

11

You must specify ['requestBody'] as the third parameter of addListener. For example:

chrome.webRequest.onBeforeRequest.addListener(
    function(details)
    {
        console.log(details.requestBody);
    },
    {urls: ["https://myurlhere.com/*"]},
    ['requestBody']
);

The documentation says:

requestBody ( optional object )

Contains the HTTP request body data.
*Only provided if extraInfoSpec contains 'requestBody'.*
于 2013-08-02T13:31:05.177 回答
2

请注意,如果请求实际上具有请求正文,则添加requestBodyaddListener()将起作用。

大多数 HTTP 请求没有任何请求正文。换句话说,如果请求没有请求体,get undefinedfore.requestBody正常的。

于 2016-08-07T18:38:53.860 回答