我正在构建一个 Chrome 扩展程序并尝试记录一些请求:带有 POST 参数(纯文本数据)的请求
这是我正在使用的代码:
var requestFilter = {urls: ["<all_urls>"]};
var extraInfoSpec = ['requestHeaders','requestBody','blocking']; // note: without 'requestBody' it works perfectly, but there's no POST data available.
var handler = function( details ) {
console.log(details);
};
chrome.webRequest.onBeforeSendHeaders.addListener(handler, requestFilter, extraInfoSpec);
我使用 requestHeaders
和 blocking
来处理示例中未包含的其他内容(现在不用担心它们)
我在页面加载时收到此错误:未捕获错误:参数 2 的值无效。属性“.1”:值必须是以下之一:[requestHeaders,阻塞]。
我正在 Chrome 版本 36.0.1985.125 m
下进行开发表单 chrome webRequest 文档:自 Chrome 23 起稳定。包含 HTTP 请求正文数据。仅当 extraInfoSpec 包含“requestBody”时才提供。
有遇到此错误的经验吗?有什么已知的解决方案吗?我该如何解决这个问题?
最佳答案
您正在监听错误的事件。
如果你看documentation , onBeforeSendHeaders
未在回调详细信息中列出 requestBody
。
但是,它可以在 onBeforeRequest
中使用。
因此,如果您同时需要 header 和正文,则必须通过 requestId
将两个事件关联起来。
关于javascript - Chrome webRequest 响应正文 (POST) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888965/