¿Cómo evito que Firefox solicite nombre de usuario / contraseña con HTTP Basic Auth con JQuery AJAX?

Estoy escribiendo algunas funciones dinámicas del lado del navegador y estoy usando HTTP Basic Auth para proteger algunos recursos. La experiencia del usuario es muy importante y está altamente personalizada.

Aquí hay un método simple de prueba JQuery que eventualmente probará si un usuario ha proporcionado las credenciales correctas en un formulario:

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

Si no se les permite acceder a/private, en este momento deberían ver solo el cuadro de alerta. Sin embargo, en Firefox, aparece un formulario de inicio de sesión proporcionado por el navegador (para volver a intentarlo con nuevas credenciales). Safari no hace esto.

Queremos controlar completamente la experiencia con formularios personalizados, fundidos, transiciones, etc. ¿Cómo puedo evitar que se muestre el cuadro predeterminado de Firefox? (Si esto será un problema cuando probamos IE, me encantaría escuchar soluciones allí también).

Respuestas a la pregunta(6)

Su respuesta a la pregunta