我知道chrome.webRequest.onBeforeRequest
允许拦截,分析和阻止请求,但它只允许访问请求头,而不是请求体(据我所知)。拦截来自chrome扩展的HTTP请求体
示例用例:想想拦截表单的值。
似乎有一个API更改建议here正是这个建议。
有没有另一种方法可以完成?
谢谢。
我知道chrome.webRequest.onBeforeRequest
允许拦截,分析和阻止请求,但它只允许访问请求头,而不是请求体(据我所知)。拦截来自chrome扩展的HTTP请求体
示例用例:想想拦截表单的值。
似乎有一个API更改建议here正是这个建议。
有没有另一种方法可以完成?
谢谢。
此功能现已添加到API中,请参阅documentation。
为了获得你需要做以下的身体:
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
console.log(details.requestBody);
},
{urls: ["https://myurlhere.com/*"]},
['requestBody']
);
啧啧,真棒。感谢ping。 – Ped 2014-01-23 09:37:31
对我来说,它总是返回undefined。也许只用于测试版频道? – BeauCielBleu 2014-06-27 12:42:37
@BeauCielBleu可能没有请求正文。尝试记录URL:'console.log(“url:”+ details.url);' – georgiecasey 2015-01-04 19:28:53
尽管您可能无法拦截,但您可以使用标准的AJAX方法来管理磁带。而不是制作href请求,看看是否可以进行异步调用并将其保存到未提供的HTML对象。然后刮/读/解析/不管你的身体标准是什么,如果它通过,将该身体对象返回到当前窗口/页面。
将内容存储在一个抑制元素中,然后将相同元素用于内容可以避免重复调用。缺点是你会得到你不会用到的东西的全部内容。这可能是也可能不是带宽/速度性能问题。
拦截响应/请求机构目前无法使用内置在Chrome中的API。 [最新源代码的相关部分](http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/api/web_request/)不包含任何此类功能的迹象。如果您不能没有该功能,您可以浏览[NPAPI插件](http://code.google.com/chrome)的[可能性](http://stackoverflow.com/tags/npapi/info) /extensions/npapi.html),或启动(本地)服务器,并将特定请求重定向到本地服务器。 – 2012-07-21 21:22:04
那很不幸。 NPAPI似乎对我的需求过度杀伤。但感谢您的答案。 – Ped 2012-07-22 13:01:25