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 基本認証は、POST 本文ではなく、HTTP ヘッダーまたは URL で渡されます。

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 に答える