2

我正在尝试使用 .ajax 来测试我们在内部应用程序(基本身份验证)上拥有的登录页面并查看 http 状态代码。但是,模式窗口仍然会弹出提示输入登录凭据。为什么是这样?我试图让这发生在幕后。

代码:

 $(document).ready(function() {

      $.ajax({
          url:"./testurl.aspx",
          type: "POST",
          data:{
                username: "Test",
                password: "Password"
          },
          complete: function(xhr){
                alert(xhr.status);
          }
      });
 });

但我仍然得到这个:

在此处输入图像描述

然后当然会显示警报(xhr.status),但我需要这个而不需要手动输入用户名/密码。

4

1 回答 1

3

HTTP 基本身份验证作为 HTTP 标头或在 URL 中传递,而不是在 POST 正文中。

将其放在 URL 中的示例:

 $.ajax({
      url:"//Test:Password@" + location.host + "/path/to/testurl.aspx",
      type: "POST",
      complete: function(xhr){
            alert(xhr.status);
      }
  });

您也可以使用 ajax 方法的headers属性来尝试添加标头,但这需要对密码进行 Base64 编码。

于 2013-06-19T21:09:02.810 回答