- 我正在开发一个Google Chrome插件。
- 在选项页面下,我正在向服务器运行需要密码的AJAX请求。
- 我只想捕获密码不正确的错误,但浏览器会弹出一个弹窗。
alt text http://img834.imageshack.us/img834/2905/browserproblem.png
我能否禁用它,如何禁用?
alt text http://img834.imageshack.us/img834/2905/browserproblem.png
我能否禁用它,如何禁用?
问题在于,您没有对发送的用户名(即身份验证令牌)和(虚拟)密码进行Base64编码(这是HTTP基本身份验证方案的要求)。以下大致是您的代码应该如何编写:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://onsip.highrisehq.com/account.xml');
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(token + ':'));
xhr.onreadystatechange = function() { console.log(xhr.responseText); };
xhr.send();
'onsip'
,但您仍需要用您的身份验证令牌替换token
。我知道在Firefox XUL代码中可以有两种方法来实现这个,但不适用于Web代码。其中一种方法我知道不适用于Google Chrome,而快速测试似乎表明另一种方法也不适用。
我想到了三个选项。
在可访问的服务器上设置一个密码检查页面(最好是同一台服务器),当通过安全连接查询时,它会回复一个指示用户/密码组合是否正确。如果你不是与运行此服务的服务器相关的人员,我会对你这样做感到不满,尽管成千上万的人都让Facebook等公司一直这样做!另一方面,说服人们不要像Facebook等公司一样这样做已经很难了,所以另一个人做同样的事情并不能帮助解决问题。