Ответ 1
Регистрация с помощью запроса AJAX обычно работает, потому что успешный запрос AJAX устанавливает куки сеанса, которые будут отправляться во всех последующих запросах прозрачно.
Возможно, ваши файлы cookie установлены, но по какой-либо причине они не установлены прозрачно: вы можете проверить с помощью xhr.getAllResponseHeaders()/xhr.getResponseHeader() и после этого установить их с помощью document.cookie.
Если нет файлов cookie сеанса, то это поведение обычно терпит неудачу.
Вы можете попробовать перенаправить с именем пользователя + пароль в URL-адресе (не рекомендуется, потому что имя пользователя + пароль, вероятно, будет отображаться в строке адреса URL-адреса браузера):
window.location.href =
window.location.protocol + "//" +
username + ":" + password + "@" +
window.location.hostname +
(window.location.port ? ":" + window.location.port : "") +
'/app/test.html';
Также вы должны проверить задержку перенаправления... потому что, возможно, он работает, но вам нужно дать дополнительное время браузеру, вы попробовали:
var encoded = Base64.encode(username + ':' + password);
$.ajax({
url: "/app/test",
type: "GET",
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + encoded);
},
success: function() {
setTimeout(function() {
window.location.href = '/app/test.html';
}, 333);
}
});