Javascript Chrome.webRequest API-requestBody始终未定义
我试图在我的Chrome扩展中使用WebRequestAPI。使用以下代码块:Javascript Chrome.webRequest API-requestBody始终未定义,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我试图在我的Chrome扩展中使用WebRequestAPI。使用以下代码块: $(document).ready(function(){ chrome.webRequest.onBeforeRequest.addListener( function(details) { console.log(details.requestBody); }, {urls: ["https://myurlhere.com/*"]} );}); 控制台向我显示r
$(document).ready(function(){
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
console.log(details.requestBody);
},
{urls: ["https://myurlhere.com/*"]}
);});
控制台向我显示requestBody是未定义的。如果我自己记录详细信息,我可以检查details对象,但似乎在任何地方都找不到requestBody对象
我的语法错了吗?我做了一些搜索,找到了几个其他的例子,它似乎应该是工作的方式,我有它。非常感谢您的帮助。您必须指定['requestBody']作为addListener的第三个参数。例如:
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
console.log(details.requestBody);
},
{urls: ["https://myurlhere.com/*"]},
['requestBody']
);
说:
requestBody(可选对象)
请注意,添加到addListener()
将起作用,前提是请求实际上有一个请求正文
大多数HTTP请求没有任何请求正文。换句话说,如果请求没有请求正文,则为
e.requestBody
获取未定义的是正常的。您提出了什么请求?例如,如果它是一个GET请求,那么请求有一个空的正文就很有意义。“requestBody:包含HTTP请求正文数据。仅当extraInfoSpec
包含“requestBody”时才提供。”添加一个元素数组['requestBody']
作为第三个参数。去掉jQuery。在绑定webRequest事件之前,完全不需要等待domready事件。感谢您的回答。这很有效。我想是我把一些简单的事情搞糟了。我得到了这个错误:''Uncaught error:参数2的值无效。属性“.0”:值必须是:[requestHeaders,blocking]')之一才能在其中使用requestBody。我有chrome 36+@Dandy它只在onBeforeRequest事件中可用。
Contains the HTTP request body data.
*Only provided if extraInfoSpec contains 'requestBody'.*