К сожалению, это никогда не сработает, потому что способ использования XHR там асинхронный:
xmlhttp.open("GET",url,true); // true means asynchronous
Поскольку вызов асинхронный, результат функции не будет иметь результата при запуске Ajaxrequest.
Если вы хотите продолжить использование этой функции, просто измените этот последний параметр на false
, то есть
xmlhttp.open("GET", url, false); // will now be synchronous
Теперь вам также не понадобится обработчик onreadystatechange
.Имейте в виду, что это, очевидно, сделает синхронный вызов XHR и для вашего события onchange
;возможно, настройте функцию так, чтобы она принимала флаг для is_synchronous
или для чего-то другого.
Возможно, вы также захотите добавить метку времени в свои запросы, чтобы браузер не кэшировал ответ.