我正在尝试在Chrome扩展程序中使用webrequest api。使用以下代码块:
$(document).ready(function(){
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
console.log(details.requestBody);
},
{urls: ["https://myurlhere.com/*"]}
);});
控制台告诉我requestBody未定义。如果我自己记录详细信息,我可以检查详细信息对象,但我似乎无法在任何地方找到requestBody对象。
我的语法错了吗?我做了一些搜索,发现了其他一些例子,看起来应该按照我的方式工作。任何帮助表示赞赏。
答案 0 :(得分:9)
您必须将['requestBody']指定为addListener的第三个参数。例如:
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
console.log(details.requestBody);
},
{urls: ["https://myurlhere.com/*"]},
['requestBody']
);
requestBody(可选对象)
Contains the HTTP request body data. *Only provided if extraInfoSpec contains 'requestBody'.*
答案 1 :(得分:1)
请注意,将requestBody
添加到addListener()
会有效,提供请求实际上有一个请求正文。
大多数HTTP请求没有任何请求正文。换句话说,如果请求没有请求正文,则undefined
获取e.requestBody
正常。