我想检查一个URL是否受到使用javascript的Http Basic身份验证的保护。 以下是我到目前为止的情况:
function showFailure(){ alert("FAILED ") }
function showSuccess(){ alert("SUCCESS") }
var myRequest = new Request({
url: 'http://localhost/access_protected_HTTP_BASIC',
method: 'get',
onSuccess: showSuccess,
onFailure: showFailure
}).send();
但实际上这会打开浏览器登录弹出窗口以访问资源。 有没有办法不触发弹出窗口?
谢谢!
注意:我在这个例子中使用了mootools,但是我会采用任何可以解决这个问题的javascript示例:)
答案 0 :(得分:7)
根据answer to a similar question,您可以在发送请求时手动传递用户名和密码。 (根据MooTools Docs,user
和password
参数就是这样做的。)
此外,XMLHttpRequest
spec说:
如果身份验证失败,则授权不在作者请求标头列表中,请求用户名为非空,请求密码为非空,用户代理不得提示最终用户为用户名和密码。
这意味着您可以设置虚拟用户名和密码,浏览器不会提示用户。如果您返回401状态代码,则表示需要授权。
答案 1 :(得分:0)
您需要做的就是添加一个标头Authorization: Basic *Base64EncodedString*
*Base64EncodedString*
base64Encode(username+':'+password)
,它应该很容易找到base64encode函数。 YMMV