我负责为三种浏览器开发扩展(具有相同的功能集):Firefox、Chrome 和 Safari。其中一项功能是基本身份验证自动登录。凭据是从我们的服务器获取的,然后只需单击一下,用户就可以登录到受基本身份验证保护的 URL,而无需手动填写凭据。
我让它适用于 Firefox 和 Chrome。对于 Firefox,我利用它缓存基本身份验证凭据的事实,即使请求是通过 XMLHttpRequest 完成的。所以,我基本上是这样做的:
//Make the basic-auth request to URL using XMLHttpRequest
var xml = new XMLHttpRequest();
xml.open('GET', URL ,false, USERNAME , PASSWORD);
xml.send('');
//Now redirect the current tab to the URL
window.content.document.location = URL;
这适用于 Firefox,也适用于 Chrome。谷歌在最新版本的 Chrome 中更改了一些东西,我不得不开始使用 onAuthRequest 回调,它工作正常(如果不是更好,请查看这篇文章以获取参考:Chrome 插件开发:用户:pass@url 不支持谷歌浏览器了?)。
现在,问题出在 Safari 5.1 上。XMLHttpRequest 技术似乎不起作用,我找不到 onAuthRequest 等效项。有谁知道在 Safari 5.1 上实现相同效果的方法?