【问题标题】:Chrome plugin development: user:pass@url not supported by Google Chrome anymore?Chrome 插件开发:谷歌浏览器不再支持 user:pass@url?
【发布时间】:2012-05-30 08:07:23
【问题描述】:

我开发了一个 Chrome 插件,它使用 XMLHttpRequest 将带有用户名/密码的 GET HTTP 请求发送到一个基本身份验证保护的 URL,以便之后它可以“自动登录”到它(因为 Chrome 缓存了HTTP 基本认证)。

这是我使用的代码:

  var xml = new XMLHttpRequest();
  xml.open('GET',<url>,false,<username>,<password>)
  xml.send('');

它曾经运行良好一段时间,但前一段时间开始失败。插件代码没有改变,所以我认为它可能与 Chrome 本身有关。我为 OSX (17) 和 BAM 下载了以前的版本,它又可以工作了。

经过一些额外的研究,我发现这可能与 Chrome 19 不支持用于对基本身份验证保护的 URL 进行身份验证的 username:pwd@url 语法有关,因为当我发送 XMLHttpRequest 时,我在 Google 中看到了这一点Chrome 的 js 控制台:

GET http://user:pass@domain.com401(未授权)

有谁知道这是一个错误还是 Chrome 停止支持此功能?

谢谢,

马塞洛。

【问题讨论】:

    标签: javascript google-chrome plugins xmlhttprequest basic-authentication


    【解决方案1】:

    你不是唯一的人having this issue。它激怒了其他几个人。

    但是,鉴于 Chromium 开发人员提供的 cmets:

    有意弃用对 URL 中嵌入身份验证的支持。

    它看起来像是被故意删除的。

    【讨论】:

    • 这很不幸。我会看看使用带有基本身份验证信息的 setRequestHeader 是否提供相同的行为(缓存凭据,以便我可以重定向并加载 URL),但我记得我已经测试过它并且它不起作用,所以这就是为什么我必须传递用户名和密码参数。感谢您的回复!
    • @FullOfCaffeine 如果您阅读了讨论,您会看到有人开发了一个扩展来恢复功能。因此,如果从扩展中获得它是可能的。
    • 我设法使用 onAuthRequest 回调来实现相同的功能。 Google Chrome 扩展文档对此有点神秘,但效果很好。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2018-10-08
    相关资源
    最近更新 更多