Похоже, вы пытаетесь прочитать возвращаемое значение из этой функции:
function isUsernameExists() {
У него нет оператора return
, поэтому оно всегда будет undefined
.
Я предполагаю, что вы ожидаете, что этот оператор возврата передаст нужное вам значение:
return xmlHttp.responseText.toString();
Но это часть этой функции:
xmlHttp.onreadystatechange = function() {
Который вызывается автоматически, когдасобытие readystatechange срабатывает, а не с помощью какого-либо вызова функции, которую вы делаете.
Асинхронный JavaScript и XML редко используют XML, но являются асинхронными. Все, что вы хотите сделать с извлеченными данными, должно выполняться с помощью функции обратного вызова, которую вы назначаете для onreadystatechange .Он может вызывать другие функции, но он не может возвращать что-либо (по крайней мере, это не будет получено где-либо полезным).