CORS, вместо GET приходит OPTIONS?

В общем есть проблема: есть самый простой сервер на Go ->
package main

import (
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Access-Control-Allow-Origin", "*")
		
		w.Write([]byte("TEST"))
	})
	http.ListenAndServe(":80", nil)
}


есть клиент на React ->
export const test = () => {
    return async dispatch =>{
        try {
            const response = await axios.get("https://3ff5-77-222-110-208.eu.ngrok.io/", {
                headers: {"Access-Control-Allow-Origin": "*",
                    'Access-Control-Allow-Methods' : 'GET,PUT,POST,DELETE,PATCH,OPTIONS'}
            })
            console.log(response)
        }catch (e) {

        }
    }
}


Ошибка на клиенте:
CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

На сервер приходит OPTIONS вместо GET запроса, но если отправить POST, то всё хорошо(React). Сам сервер адекватно обрабатывает GET запросы -> утилита curl.

Использую ngrok т.к клиент и сервер находятся на разных машинах на локалхосте.
  • Вопрос задан
  • 486 просмотров
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
Ты зачем-то добавил в запрос заголовки, которые должны быть в ответе (и не имеют смысла в запросе). Из-за чего запрос стал "непростым" и теперь отправляет OPTION.
https://learn.javascript.ru/fetch-crossorigin
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы