我有一个chrome扩展程序,目前正在使用webrequest api。我的问题很简单,是否可以使用webrequest api阻止和修改 AJAX请求?如果不是有解决方法吗?
PS。 我试图将一些HTML注入到GMail电子邮件中,但到目前为止我找到的唯一解决方案是检测所有各种类型的组合,然后注入我的HTML。这种方法很好,除了它不稳定,只有大约70%的时间插入工作。
如果有更好的方法,请告诉我,谢谢!
修改
如果有人需要,可以找到一些替代解决方案。
XMLHttpRequest.send
方法以广播事件。您可以在发出请求之前修改请求。答案 0 :(得分:2)
虽然您可以通过将type property for chrome.webRequest明确设置为xmlhttprequest
来检测XMLHttpRequests,但您只能阻止异步请求。
从扩展程序生成的同步XMLHttpRequests对阻止事件处理程序是隐藏的,以防止死锁。此外,webRequest API仅公开对清单的permissions区域中定义的URi模式进行的调用。
答案 1 :(得分:2)
目前无法使用webRequest api访问或修改响应正文。铬中有open issue请求该功能。他们最近实现了accessing the request body的能力,所以他们也有可能也会添加它。
如this answer中所述,您可能会更好地使用修改XMLHttpRequest
对象的技术。 Here你有一个逐步的案例研究,其中拦截和修改了AJAX响应。