我正在开展一个项目,我必须登录BasicAuth网站。我遇到了webRequest的文档并意识到有三种不同的onAuthRequiredOptions:即#34; responseHeaders"," blocking"," asyncBlocking"
我尝试了它们,我发现的唯一一件事就是" asyncBlocking",Chrome会让扩展程序有机会发起回调,可以验证BasicAuth,更改请求标头,等。
chrome.webRequest.onAuthRequired.addListener(
function(details, callback) {
callback({
authCredentials: {username: "login", password: "login"}
});
},
{urls: ['<all_urls>']},
['asyncBlocking']
);
但是对于&#34; responseHeaders&#34;,&#34;阻塞&#34;,他们的行为似乎是相同的,他们都没有回调,但后来我无法弄清楚对方差异。
我认为有理由分成三个值。所以我想知道它们背后的哲学是什么?
谢谢。
答案 0 :(得分:3)
responseHeaders
权限用于填充details
的可选属性,并且有几种方法可用。如果没有此权限,则webRequest
处理程序无法使用收到的标头。至于blocking
和asyncBlocking
它们是相同的,除了一个是同步的而另一个不是。 asyncBlocking
允许您在示例中指定回调,而blocking
期望处理程序本身中的return
如下:
chrome.webRequest.onAuthRequired.addListener(function(details) {
return {authCredentials: {username: "login", password: "login"}};
},
{urls: ['<all_urls>']},['blocking']);