Несколько замечаний, которые я не смог уместить в комментарии (некоторые из них не должны влиять на успешность вашего вызова XMLHttpRequest; другие могут - поэтому исправьте все из их):
Сценарий
Ничто не проверяет возвращаемое значение make_request () , поэтому return false;
является бессмысленным (просто ... возврат). Почему бы не сделать httpxml локальной переменной вместо неявной глобальной и вернуть ее? Затем используйте возвращаемое значение, чтобы указать вызывающей стороне, успешно ли выполнена функция ...
Локальная переменная httpRequest в check_login () никогда не используется. Возможно, вы намеревались присвоить ему возвращаемое значение make_request () (и ... иметь make_request () на самом деле вернуть что-то полезное?)
Вы на самом деле не кодируете URL значения имя пользователя или пароль . (Пропустите их через encodeURIComponent()
, чтобы выполнить это легко)
Вам не нужно явно устанавливать заголовок Content-Length
. (И если вы ошибетесь, это может легко привести к сбою запроса)
И самая страшная ошибка скрипта: вы не отменяете поведение по умолчанию для кнопки отправки. Верните false из check_login () и измените ваш обработчик событий на onclick="return check_login(username, password);
Разметка
Вы сделали тег <form>
самозакрывающимся (<form ... />
). И включил закрывающий тег </form>
. Маловероятно, что вы этого хотите (и еще менее вероятно, что кросс-браузер будет работать надежно)
Ваша последняя ячейка (<td>
) определена вне любой строки (<tr>
).
Вы закрываете <div>
, которое никогда не открывалось.