Я пытаюсь реализовать асинхронный вход в JEE6 webapp с помощью javascript и XMLHttpRequest. Я должен был бы сделать асинхронный вызов с XMLHttpRequest в/app/j_security_check и проанализировать ответ так или иначе, чтобы я мог показать пользователю диалог с «Ошибка входа в систему» или «Успех входа в систему». Я использую Glassfish 3.1.1.Java EE веб-приложение асинхронный вход в Glassfish 3.1.1
Что-то я пробовал, но ответ всегда равен нулю. У меня есть login.jsp, который держит форму входа и следующий сценарий:
function submitLogin(formName) {
var urlAction = "/app/j_security_check";
var client;
var dataString;
if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari
client = new XMLHttpRequest();
} else { // IE6, IE5
client = new ActiveXObject("Microsoft.XMLHTTP");
}
client.onreadystatechange = function() {
var response = client.responseText; // this is always null
/* ALERT THE DIALOG HERE ACCORDING TO RESPONSE? */
};
var form = document.forms[formName];
var username = form.elements["j_username"].value;
var password = form.elements["j_password"].value;
dataString = "j_username=" + username + "&j_password=" + password;
client.open("POST", urlAction, true);
client.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
client.send(dataString);
}
Так что мой вопрос, возможно ли это и как следует осуществить?
Редактировать: Проблема, похоже, возникает из-за перенаправления Java Security после принудительного/неудачного входа в систему. Кажется, что всегда перенаправляет страницу, независимо от того, что я делаю с javascript. Я также попытался использовать jQuery ajax методы безрезультатно.
Это не похоже на работу. Страница всегда перенаправляется после входа в систему, и я не могу ничего с ней поделать ни в собственном Javascript, ни в jQuery. –
@Antionio Можете ли вы обновить свой вопрос тем, что вы пробовали? Вы добавили 'if (client.readyState == 4) { if (client.status == 200) {' in 'onreadystatechange', как я предлагаю? –
Мы фактически отказались от всей идеи и пошли без асинхронного входа. –