Клиент на Javascript и сервер на Go не взаимодействуют. Fetch

Я пытаюсь создать простейшее приложение по обмену информацией между клиентом на HTML+CSS+JavaScript и сервером на Go. Использую Fetch. В качестве среды разработки применяю Visual Studio Code. После запуска сервера и перехода по адресу, я получаю от него корректный ответ: "Сервер запущен на порту 5500". Далее запускаю клиент с помощью Live Server. Но после нажатия на кнопку надпись на ней меняется на код HTML-файла, а не на сообщение от сервера. Что я делаю не так?

const btn = document.getElementById("btn");
btn.addEventListener("click", function() {
    fetch("http://localhost:5500")
        .then(response => {
            if (!response.ok) {
                throw new Error("Ошибка");
            }
            return response.text();
        })
        .then(data => {
            btn.textContent = data;
        })
        .catch(error => {
            console.error("Error:", error);
        });
});
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Простое веб-приложение</title>
</head>
<body>
    <button id="btn">Нажать</button>
    <script src="script.js"></script>
</body>
</html>

Код на Go

package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "text/plain; charset=utf-8")
    fmt.Fprint(w, "Привет от сервера на Go!")
}
func main() {
    http.HandleFunc("/", handler)
    err := http.ListenAndServe(":5500", nil)
    if err != nil {
        log.Println(err)
        return
    }
    log.Println("Сервер запущен на порту 5500")
}

Ответы (1 шт):

Автор решения: ac3gbsha7

Проблема заключалась в том, что браузер выбирал рандомный порт, необходимо было активировать CORS-запросы. Добавление дополнительной строки w.Header().Set("Access-Control-Allow-Origin", "*") к функции handler решило проблему.

→ Ссылка