带有httpChannel.redirectTo的httpChannel.setRequestHeader

带有httpChannel.redirectTo的httpChannel.setRequestHeader,redirect,http-headers,firefox-addon,firefox-addon-sdk,request-headers,Redirect,Http Headers,Firefox Addon,Firefox Addon Sdk,Request Headers,我的Firefox插件有问题 对于我的扩展,我想重定向符合特定模式的请求。到目前为止,重定向工作正常 httpChannel.redirectTo 现在,我想添加/修改重定向的请求头,如下所述: 到目前为止,我的代码是: console.log("start"); const {Cu,Ci} = require('chrome'); Cu.import('resource://gre/modules/Services.jsm'); var httpRequestObserver = {

我的Firefox插件有问题

对于我的扩展,我想重定向符合特定模式的请求。到目前为止,重定向工作正常

httpChannel.redirectTo

现在,我想添加/修改重定向的请求头,如下所述:

到目前为止,我的代码是:

console.log("start");
const {Cu,Ci} = require('chrome');
Cu.import('resource://gre/modules/Services.jsm');
var httpRequestObserver =
{
    observe: function(subject, topic, data)
    {
        var httpChannel, requestURL;
        if (topic == "http-on-modify-request") {
            httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
            requestURL = httpChannel.URI.spec;
            if (requestURL.indexOf('www.3und80.de') > -1) {

                    console.log("match url");           
                    newURL = 'http://www.genialschenken.de/';

/*This has no effect*/
httpChannel.setRequestHeader("X-Hello", "World", false);

                    console.log("redirecting...");
                    httpChannel.redirectTo(Services.io.newURI(newURL, null, null));
            }
        return;
        }
    }
};

Services.obs.addObserver(httpRequestObserver, "http-on-modify-request", false);
不幸的是,这条线

httpChannel.setRequestHeaderX-Hello,World,false

没有效果。 我做错了什么

提前谢谢

来自IRC:

00:58堕落的诺伊达:诺伊达

00:58倒下和倒下的断路器

00:59但是我没有读链接

01:00诺伊达:


@3und80让我们进一步研究这一点,并在此制定解决方案。

尝试将SETREUQESHEADER行移到重定向到行之后。让我知道如何工作确定这是一个选项:通过检查httpChannel.statusCode或其他内容来检测它是否是重定向,如果是,则中止请求,然后复制所有参数并使用适当的referer等创建新请求,这将肯定有效。试着询问其他地方,如,当然还有irc,但你必须整天都在