如何通过chrome扩展修改请求正文

Fra*_* Xu 5 javascript google-chrome

我尝试过使用chrome.webRequest API,最后发现它看起来像google不允许我们修改POST请求的requestBodies?我只能取消它或修改它的标题.那么有没有其他方法来修改帖子请求的原始(非形式)主体?我知道代理服务器可以做到这一点,但我想用扩展来处理它.

小智 2

这适用于某些情况:首先,将请求正文保存在onBeforeRequest侦听器的变量中。然后,onBeforeSendHeaders您可以取消或重定向原始请求(抱歉,Chrome 只给您两个选项来处理原始请求)。同样在 中onBeforeSendHeaders,您发出一个新请求(例如,jquery ajax),您将变量中的旧主体和旧标头附加到该请求 - 两者都可以根据需要进行修改/重写。(小问题:出于“安全原因”,它不会让您设置所有标头,因此您可以再添加一个onBeforeSendHeaders侦听器以将敏感标头添加到新请求中)。

适用于请求发出者对重定向或取消作为响应感到满意的情况。如果请求发出者期望完整、完整、没有重定向的实际响应,那么事情就会变得更加困难。