2010-07-18 89 views
29

我不能看到Developer's Guide一个答案,但也许我没有在正确的地方寻找。我可以使用Chrome扩展程序修改外发请求标头吗?

我想拦截HTTP请求与Chrome扩展,然后将其转发上,可能有新的/不同的HTTP头 - 我该怎么办呢?

+0

这是接近我可以找到:http://code.google.com/chrome/extensions/content_scripts.html – 2010-07-18 04:13:37

+0

考虑更改接受回答。目前接受的答案已经过时。 [较新的答案](http://stackoverflow.com/questions/3274144/can-i-modify-outgoing-request-headers-with-a-chrome-extension/9143714#9143714)是正确的。 – 2014-03-24 23:11:35

+0

如果/当这个答案更新了一个实际的解释和如何做到这一点的例子,我会继续并将其标记为解决方案。链接本身并不是答案。 – 2014-03-24 23:28:28

回答

27

PS:我这个扩展的笔者所以你可以怪我什么你不喜欢:)

当OP提出这个问题的时候肯定是不可能的,但不久之后Chrome发布了实验WebRequest API。但现在它们已被正式纳入Chrome扩展。您可以使用它在Chrome中修改请求和响应标头。

请看下面的例子:

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(details) { 
    for (var i = 0; i < details.requestHeaders.length; ++i) { 
     if (details.requestHeaders[i].name === 'User-Agent') { 
     details.requestHeaders.splice(i, 1); 
     break; 
     } 
    } 
    return { requestHeaders: details.requestHeaders }; 
    }, 
    {urls: ['<all_urls>']}, 
    [ 'blocking', 'requestHeaders'] 
); 

如果您想使用Chrome扩展,可以使用Requestly它允许您按照您的意愿修改请求和响应头。看看这个快照:

Headers Rule

+8

我会调低**'广告**。 1)你应该明确地透露它是你自己的创作,2)也许一个巨大的截图是不合适的。 – Xan 2015-01-14 08:11:31

+2

@Xan我已经添加了PPS,说“我是作者”。你说得对,我应该首先做到这一点。快照可能/不可能不合适,我将在这里。如果你觉得它不应该在那里,请删除它。我对它很好。感谢您的输入。我赞赏 – sachinjain024 2015-01-14 08:49:52

+13

谢谢blunderboy,不要担心 - 你的形象是完美的。你作为作者已经从存储库链接中不言而喻,并且鉴于你首先确定了API并展示了示例代码(更不用说它是一个开源项目),因为它是一个“广告”是一个非常愚蠢的东西要做的事。 – 2015-03-02 22:50:31

4

你正在寻找正确的地方,但拦截HTTP请求尚不存在,但延长的团队意识到,这是一个流行的请求,并希望得到它在不久的将来。

相关问题