Кажется, это не сработало и для первого пользователя. Проблема заключалась в том, что заголовок авторизации, вероятно, был установлен браузером ранее (когда я использовал диалог аутентификации браузера).
То, что я сейчас делаю, - это сохранение информации для входа в стандартное имя = значение cookie и установка заголовка авторизации вручную.
Установить cookie:
var header = "Basic " + $.base64.encode(auth.username + ":" + auth.password);
document.cookie = "Authorization=" + header;
Прочитать куки:
function getAuthCookie() {
var cn = "Authorization=";
var idx = document.cookie.indexOf(cn)
if (idx != -1) {
var end = document.cookie.indexOf(";", idx + 1);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(idx + cn.length, end));
} else {
return "";
}
}
Установить заголовок авторизации:
$.ajax({
type: "GET",
url: "http://someurl",
contentType: "application/json; charset=utf-8",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", getAuthCookie());
},
dataType: "json",
success: auth.success,
error: auth.error
});
Это немного неловко, но работает.