Я пытаюсь реализовать асинхронный вход в веб-приложение JEE6, используя javascript и XMLHttpRequest. Я должен быть в состоянии сделать асинхронный вызов с XMLHttpRequest в / app / j_security_check и как-то разобрать ответ, чтобы я мог показать пользователю диалог с «Ошибка входа в систему» или «Ошибка входа в систему». Я использую 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);
}
Итак, мой вопрос: возможно ли это и как это реализовать?
Edit:
Проблема здесь, кажется, возникает из-за перенаправления, которое обеспечивает безопасность Java после успешного / неудачного входа в систему. Кажется, всегда перенаправить страницу, независимо от того, что я делаю с JavaScript. Я также пробовал jjuery-методы ajax безрезультатно.