To, czego najbardziej brakuje, to przypięcia tego żądania Ajaksowego do przycisków przy pomocy addEventListener(). Bo tak na oko samo żądanie powinno się wykonać. I gdy już dobierzesz się do zwracanej odpowiedzi (czyli this.responseText u Ciebie), to wystarczy wrzucić ją do wybranego elementu HTML przez textContent (względnie innerText).
Nie wiem też, czy na Twoim miejscu nie użyłbym Fetch API, bo jest zdecydowanie łatwiejsze do szybkiego ogarnięcia, niż stareńkie XMLHttpRequest.
No i przemyślałbym inną kwestię:
Nie chce używać <a href= w html bo to już opanowałem i chce spróbować stworzyć linki w js.
To jest bardzo kiepski pomysł. Najprościej rzecz ujmując: nie da się odtworzyć linków w JS-ie. Choćby dlatego, że żadna przeglądarka nie pozwala już na wyświetlenie czegokolwiek w pasku stanu. A w takim Chrome czy Firefoksie po najechaniu na link w lewym dolnym rogu pokaże się adres, na który odsyła. Pomijając już tę kwestię, jest szereg innych problemów:
- obsługa klawiaturą – nawet jeśli weźmie się do tego button, to istnieje rozjazd, bo linki nie reagują na spację, podczas gdy przyciski tak. Trzeba by zatem nadpisać całe zachowanie klawiatury przycisków tak, żeby działały jak linki. No a jeśli nie będziemy tego robić na przyciskach, to zostaje cała kwestia focusu.
- identyfikacja w drzewku dostępności – przyciski są identyfikowane jako, well, przyciski. Trzeba im zmienić odpowiednio rolę, żeby wyglądały jak linki.
- sterowanie focusem – focus na link to jeden problem, ale jeśli mamy do czynienia z linkiem do kotwicy, to trzeba następnie przenieść użytkownika do odpowiedniego elementu poprzez zescrollowanie i przeniesienie focusu w odpowiednie miejsce.
- zmiana adresu i tytułu strony – link przenosi usera w inne miejsce, więc o to też trzeba zadbać. Taki link powinien zmieniać aktualny adres strony + tytuł (bo użytkownicy czytników ekranowych w taki sposób mogą wykryć, że zmieniła się podstrona).
A to są tylko problemy, które przychodzą mi tak na szybko do głowy. Pewnych rzeczy po prostu się nie robi, bo nie ma to sensu. IMO tutaj też bardziej pasowałyby linki, którym można po prostu zablokować domyślną akcję i użyć ich do wczytania podstron/plików Ajaksem.