0

私はパスワードで保護された Web サイトを WinCE で実行しており、安全なページにアクセスしようとすると、WWW-Authenticate.

そのページにアクセスして、ユーザーがログインしているかどうかをテストできるようにしたい。問題は、jQuery ajax リクエストを使用してこれを試すと、ユーザーがそこに移動した場合と同じように、ブラウザーがログイン ボックスをポップアップ表示することです。ログインボックスが開かないようにして、代わりにjQueryにエラーをスローさせるにはどうすればよいですか

次のコードを実行します。

$.ajax({
url: '/web/secure/securepage.html',
success: function(data){ console.log(data) },
error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
      }
});

エラーメッセージで失敗するのではなく、このボックスを表示します

ここに画像の説明を入力

4

2 に答える 2

1

HTTP 認証を使用しています。クライアントがログインしていない場合は、ログインボックス (AJAX またはその他) が表示されます。

安全でないページをパス内に保持できる場合は、/web/secure/次のように ASP の「ログイン テスト」ページを作成してみてください。

  1. フォルダに安全でない ASP ページ (HTTP 認証なし) を作成します/web/secure/。のように名前を付けることができます/web/secure/logintest.asp
  2. AJAX リクエストを送信します/web/secure/logintest.asp(上記で作成したページです。安全でないため、ログイン ポップアップは表示されません)。
  3. Authorizationを使用して、要求ヘッダーに値 (例: Authorization: Basic amltbXk6cGFnZQ==)が含まれているかどうかを ASP ページで確認しますRequest.ServerVariables("Authorization")。ヘッダー値が存在する場合は、ユーザーが承認されていることを意味し、成功ステータス コード (200) を送信するか、クライアント失敗コード (4xx) を送信します。
  4. クライアントで AJAX 要求の応答を確認し、自分の作業を行います。

ここでASP for Win CE を読んでみてください。

ここで私が期待しているのは、HTTP 認証が成功すると、ブラウザーは常にAuthorization同じサーバー パスの下で連続する要求のヘッダーを送信することです (したがって、安全でないページを 内に作成する必要があります/web/secure/)。ユーザーがログインしている場合は、ASP ページのヘッダーを取得することで判断できます。

于 2012-12-13T10:18:49.607 に答える
0

クリス、実際にログインページに条件を追加して、URLがユーザー名とパス値で構成されている場合、uはそれらの値をログインフィールドに適用し、javascriptまたはjQueryを使用してボタンクリックを開始できます。

この値をURLにトラップできる可能性がありますが、送信は数ミリ秒のフリックで行われるため、問題ではないと思います。

于 2012-12-13T09:47:53.180 に答える