我用 chrome 扩展解决了同样的问题。
在扩展 background.js 中
chrome.extension.onMessage.addListener( function(request, sender, sendResponse){
chrome.webRequest.onAuthRequired.addListener(
function(details, callbackFn) {
console.log("onAuthRequired!", details, callbackFn);
callbackFn({
authCredentials: {username: request.username, password: request.password }
});
},
{urls: request.url + "/*"]},
['asyncBlocking']
);
});
在扩展 contentscript.js 中
window.addEventListener("message", function(event) {
if ( event.type == "BASIC_AUTH" ) {
chrome.runtime.sendMessage(
event.data,
event.data.sender,
function (response) {}
);
}
});
在 HTML javascript 中
window.postMessage({ type: "BASIC_AUTH", url:"www.mydomain.com", username:"myusername", password:"mypassword" }, "*");
如果您喜欢使用 Chrome 网上应用店的扩展程序,例如:MultiPass for HTTP basic authentication