" responseHeaders"," blocking"," asyncBlocking"有什么区别?在onAuthRequiredOptions中?

时间:2016-05-13 16:23:10

标签: google-chrome google-chrome-extension webrequest

我正在开展一个项目,我必须登录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;,他们的行为似乎是相同的,他们都没有回调,但后来我无法弄清楚对方差异。

我认为有理由分成三个值。所以我想知道它们背后的哲学是什么?

谢谢。

1 个答案:

答案 0 :(得分:3)

responseHeaders权限用于填充details的可选属性,并且有几种方法可用。如果没有此权限,则webRequest处理程序无法使用收到的标头。至于blockingasyncBlocking它们是相同的,除了一个是同步的而另一个不是。 asyncBlocking允许您在示例中指定回调,而blocking期望处理程序本身中的return如下:

chrome.webRequest.onAuthRequired.addListener(function(details) {
  return {authCredentials: {username: "login", password: "login"}};
}, 
{urls: ['<all_urls>']},['blocking']);