Как исправить ошибку cors в Golang?

Необходимо на сервере каким-то образом отключить cors политику, чтобы я с localhost:4200 мог достучаться на сервер, чтобы получить данные.

Запрос на фронте:

console.log(this.http.get('localhost:8080/videocard/2').pipe(
      map(
        data => {
          console.log(data);
          return [];
        })));
    return {} as any;

Я хочу внутри остановиться и увидеть какой-нибудь результат

На беке

r := mux.NewRouter()
r.HandleFunc("/videocard/2", func(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    w.Write([]byte("{\"hello\": \"world\"}"))
})

// Use default options
handler := cors.Default().Handler(r)
http.ListenAndServe(":8080", handler)

Использую пакет "github.com/rs/cors"

Перепробовал много всего, но что-то делаю не так и ни разу не смогу с фронта получить запрос. Отключал корсы в сафари, тоже ничего не помогает.


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

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

Попробуйте так

r.HandleFunc("/videocard/2", func(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, PATCH")
    w.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
    w.Write([]byte("{\"hello\": \"world\"}"))
})

Можете добавить код ошибки с фронта?

→ Ссылка