使用 javascript 控制 HTTP 基本身份验证

发布于 2024-09-28 13:10:40 字数 481 浏览 4 评论 0原文

我想使用 javascript 检查 URL 是否受到 Http 基本身份验证的保护。 这是我到目前为止所得到的:

  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 示例:)

I'd like to check if a URL is protected by a Http Basic Authentication using javascript.
Here is what I have so far :

  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();

But that actually opens the browser login popup to access the resource.
Is there a way not to trigger that popup?

Thanks!

Note : I use mootools in this example but I'd take any javascript example that does the trick :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对不⑦ 2024-10-05 13:10:40

根据类似问题的答案,您可以手动传递发送请求时的用户名和密码。 (根据 MooTools 文档用户password 参数正是这样做的。)

此外, XMLHttpRequest 规范 说:

如果身份验证失败、Authorization 不在作者请求标头列表中、请求用户名非空且请求密码非空,则用户代理不得提示最终用户输入他们的信息用户名和密码。

这意味着您可以设置虚拟用户名和密码,浏览器不会提示用户。如果返回401状态码,则表示需要授权。

Based on the answer to a similar question, you can manually pass a username and password when sending a request. (And according to the MooTools Docs, the user and password parameters do exactly this.)

Further, the XMLHttpRequest spec says:

If authentication fails, Authorization is not in the list of author request headers, request username is non-null, and request password is non-null, user agents must not prompt the end user for their username and password.

This means you can set a dummy username and password, and the browser won't prompt the user. If you get back a 401 status code, it means authorization is required.

向地狱狂奔 2024-10-05 13:10:40

您需要做的就是添加一个标头 Authorization: Basic *Base64EncodedString* ,其中 *Base64EncodedString*base64Encode(username+':'+password) > 应该很容易找到一个 base64encode 函数。青年MMV

all you should need to do is add a header Authorization: Basic *Base64EncodedString* where *Base64EncodedString* is base64Encode(username+':'+password) it should be easy enough to find a base64encode function out there. YMMV

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文