私はいくつかのブラウザ側の動的機能を作成し、HTTP基本認証を使用していくつかのリソースを保護しています。ユーザーエクスペリエンスは非常に重要であり、高度にカスタマイズされています。
これは、ユーザーがフォームで適切なクレデンシャルを提供したかどうかを最終的にテストする簡単なテストJQueryメソッドです。
$(document).ready(function() {
$("#submit").click(function() {
var token = Base64.encode($('#username').val() + ':' + $('#password').val());
$.ajax({
url: '/private',
method: 'GET',
async: false,
beforeSend: function(req) {
req.setRequestHeader('Authorization', 'test:password');
},
error: function(request, textStatus, error) {
if (request.status == 401) {
alert('401');
}
}
});
return false;
});
});
アクセスが許可されていない場合は/private
、現時点ではアラートボックスのみが表示されます。ただし、Firefoxでは、ブラウザ提供のログインフォームがポップアップ表示されます(新しいクレデンシャルで再試行するため)。Safariはこれを行いません。
カスタムフォーム、フェード、トランジションなどのエクスペリエンスを完全に制御したいと考えています。Firefoxのデフォルトボックスが表示されないようにするにはどうすればよいですか?(IEをテストするときにこれが問題になる場合は、そこで解決策も聞いてみたいです。)