5

我有一个 chrome 扩展,目前正在使用 webrequest api。我的问题很简单,是否可以使用 webrequest api 阻止和修改AJAX 请求?如果没有,是否有解决方法?

PS。我正在尝试将 HTML 片段注入 GMail 电子邮件,但到目前为止我发现的唯一解决方案是检测所有各种类型的组合,然后注入我的 HTML。这种方法很好,只是它不稳定,插入工作的时间只有大约 70%。

如果有更好的方法,请告诉我,谢谢!

编辑

如果有人需要,找到一些替代解决方案。

  • 覆盖默认XMLHttpRequest.send方法来广播事件。您可以在请求发出之前对其进行修改。
  • 覆盖默认的表单提交方法,在提交之前拦截所有的表单提交(修改表单数据)
4

2 回答 2

2

虽然您可以通过将chrome.webRequest 的 type 属性显式设置为来检测 XMLHttpRequest xmlhttprequest,但您将只能阻止异步请求。

从您的扩展发出的同步 XMLHttpRequest 对阻塞事件处理程序隐藏,以防止死锁。此外,webRequest API 只会公开对清单权限区域中定义的 URi 模式进行的调用。

于 2013-06-01T08:08:34.297 回答
2

目前无法使用 webRequest api 访问或修改响应正文。要求该功能的铬存在一个未解决的问题。他们最近实现了访问请求正文的功能,因此他们可能也会添加此功能。

XMLHttpRequest本答案中所述,您可能对修改对象的技术有更好的运气。在这里,您有一个分步案例研究,其中 AJAX 响应被拦截和修改。

于 2013-06-02T15:25:28.720 回答