0
我需要使用插件自動執行代理服務器的授權。找出當前請求是否是Firefox中的代理請求?
我還檢查的是做到這一點的其他擴展的來源,並且它們像這樣做:
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
if (topic === "http-on-modify-request") {
var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
channel.setRequestHeader("Proxy-Authorization", "Basic myauthorizationtoken" , false);
}
}
};
請求觀察者添加授權頭到每個傳出請求。如果設置了常規代理,那很好,但是在我的情況下,我有一個代理pac url,其中只有特定的請求使用代理完成,而其他則不是!
在這種情況下,基本上包含明文憑證的授權頭被髮送到每個未通過代理訪問的網站。
顯然不能這樣,所以我需要找出當前請求是否是代理請求,然後才設置頭。
或者找產品總數另一種方式......
在Chrome中我做了這樣的:
chrome.webRequest.onAuthRequired.addListener(handleAuthRequest,
{urls: ["<all_urls>"]}, ["asyncBlocking"]);
function handleAuthRequest(details, callback) {
if (details.isProxy === true){
callback({authCredentials: {username: localStorage['login'],
password: localStorage['pass']}});
}
callback();
}
顯然,這是最佳!不過,我不能在Firefox中看到一個好方法。
一些示例代碼? – msangel 2015-10-21 19:16:18
對不起,已經很久了。現在apis probalby已經多次更新。對於在其擴展中允許代理修改,chrome也變得非常挑剔。有新的指導方針和一切。 – 2015-10-21 20:34:39