Когда с сервера приходит ответ, браузер сгенерирует событие onreadystatechanged объекта, вызывая срабатывание функции, которую вы к нему подключили, и то, что вам нужно сделать в первом примере, помещается в эту строку:
alert(xhr.responseText);
внутри функции, которую вы присоединяете к событию onreadystatechanged.в противном случае браузер просто обработает строку сразу после отправки запроса.
Кроме того, вы должны проверить, что состояние готовности равно 4 (4: запрос завершен и ответ готов), и также стоит проверить, что состояние равно 200, что означает, что все в порядке.