带有httpChannel.redirectTo的httpChannel.setRequestHeader
我的Firefox插件有问题 对于我的扩展,我想重定向符合特定模式的请求。到目前为止,重定向工作正常 httpChannel.redirectTo 现在,我想添加/修改重定向的请求头,如下所述: 到目前为止,我的代码是:带有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 = {
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,但你必须整天都在