Javascript 设置chrome代理设置表单扩展
我为代理服务器开发了一个chrome扩展。 我将IP和端口设置为chrome设置后,通过API获取服务器(和it授权数据)列表:Javascript 设置chrome代理设置表单扩展,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我为代理服务器开发了一个chrome扩展。 我将IP和端口设置为chrome设置后,通过API获取服务器(和it授权数据)列表: connect: function(proxyData, callback) { this.setListener(proxyData); chrome.proxy.settings.set( { value: { mode: "fixed_servers",
connect: function(proxyData, callback) {
this.setListener(proxyData);
chrome.proxy.settings.set(
{
value: {
mode: "fixed_servers",
rules: {
singleProxy: {
scheme: "http",
host: proxyData.ip,
port: parseInt(proxyData.port)
},
}
},
scope: 'regular'
},
function() {
if (typeof callback === 'function') {
callback(proxyData);
}
}
);
}
之后,我添加自动化侦听器:
setListener: function(proxyData) {
let username = proxyData.username,
password = proxyData.password;
this.proxyAuthFunction = function(details, callbackFn) {
console.log(username, password, 'Init proxy auth function');
callbackFn({authCredentials: { username: username, password: password}});
};
if (chrome.webRequest.onAuthRequired.hasListener(this.proxyAuthFunction)) {
chrome.webRequest.onAuthRequired.removeListener(this.proxyAuthFunction);
}
chrome.webRequest.onAuthRequired.addListener(
this.proxyAuthFunction,
{urls: ["<all_urls>"]},
["asyncBlocking"]
);
}
setListener:函数(proxyData){
让username=proxyData.username,
password=proxyData.password;
this.proxyAuthFunction=函数(详细信息,callbackFn){
log(用户名、密码、'Init proxy auth function');
callbackFn({authCredentials:{username:username,password:password}});
};
if(chrome.webRequest.onAuthRequired.hasListener(this.proxyAuthFunction)){
chrome.webRequest.onAuthRequired.removeListener(this.proxyauth函数);
}
chrome.webRequest.onAuthRequired.addListener(
此.proxyauth函数,
{URL:[“”]},
[“异步阻塞”]
);
}
它不起作用,而且浏览器要求基本授权
但硬代码工作良好,浏览器不要求基本授权:
setListener: function(proxyData) {
let username = 'qwerty',
password = 'qwerty';
this.proxyAuthFunction = function(details, callbackFn) {
console.log(username, password, 'Init proxy auth function');
callbackFn({authCredentials: { username: username, password: password}});
};
if (chrome.webRequest.onAuthRequired.hasListener(this.proxyAuthFunction)) {
chrome.webRequest.onAuthRequired.removeListener(this.proxyAuthFunction);
}
chrome.webRequest.onAuthRequired.addListener(
this.proxyAuthFunction,
{urls: ["<all_urls>"]},
["asyncBlocking"]
);
}
setListener:函数(proxyData){
让username='qwerty',
密码='qwerty';
this.proxyAuthFunction=函数(详细信息,callbackFn){
log(用户名、密码、'Init proxy auth function');
callbackFn({authCredentials:{username:username,password:password}});
};
if(chrome.webRequest.onAuthRequired.hasListener(this.proxyAuthFunction)){
chrome.webRequest.onAuthRequired.removeListener(this.proxyauth函数);
}
chrome.webRequest.onAuthRequired.addListener(
此.proxyauth函数,
{URL:[“”]},
[“异步阻塞”]
);
}
有没有人遇到过类似的问题