Я работаю в проекте golang, используя gorilla/mux в качестве маршрутизатора, и теперь у меня проблемы, связанные с CORS: я не могу сделать POST
запрос, используя ajax в другом приложении.
Моя текущая конфигурация маршрутизатора выглядит следующим образом:
r := mux.NewRouter()
r.HandleFunc("/", handleHome)
//Other routes
headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
// Start http server
port := fmt.Sprintf(":%d", some_Port)
http.ListenAndServe(port, handlers.CORS(originsOk, headersOk, methodsOk)(r))
Я использую:
"github.com/gorilla/mux"
"github.com/gorilla/handlers"
Сообщение, которое я получаю в браузере (на испанском языке):
Запрашивайте блокировку другого происхождения: la política de mismo origen impide leer el recurso remoto en https://miURL (razón: falta la cabecera CORS 'Access-Control-Allow-Origin').
На английском: в основном сервер отклоняет запрос, потому что отсутствует заголовок CORS.
Итак, что я сделал не так в настройках роутера?
ИЗМЕНИТЬ:
osn
. Таким образом, даже когда вы удаляете Access-Control-Allow-Origin из запроса, этот заголовокosn
также будет вызывать предварительный запрос OPTIONS. Поэтому, если вы хотите запретить браузеру выполнять эти ВАРИАНТЫ предварительной проверки, вы можете сделать это, не добавляя заголовокosn
из запроса (наряду с не добавляя заголовок Access-Control-Allow-Origin в запрос). - person sideshowbarker   schedule 31.08.2017