170 похожих чатов

Добрый день! Продолжаю изучение туториала go-swagger. Запустил https://github.com/go-swagger/go-swagger/tree/master/examples/tutorials/todo-list/server-complete Теперь не получается

решить проблему с CORS. Загружаю yaml в SwaggerUI, установленный на моем сервере, и получаю в браузере ошибку "Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://xxx.xxx.xxx.xxx:8080/. (Причина: не удалось выполнить запрос CORS)."

Беру пример из https://github.com/rs/cors и копирую его в функцию setupGlobalMiddleware:

func setupGlobalMiddleware(handler http.Handler) http.Handler {

c := cors.New(cors.Options{
AllowedOrigins: []string{"http://swg.domain.ru:8080"},
AllowCredentials: true,
// Enable Debugging for testing, consider disabling in production
Debug: true,
})

Далее запускаю сервер, но ошибка не уходит.
Подскажите, пожалуйста, что я не так делаю?
Спасибо!

// Insert the middleware
handler = c.Handler(handler)
return handler
}

8 ответов

12 просмотров

вы делаете запрос на приватный роут?

Евгений Скореев
вы делаете запрос на приватный роут?

Если да и если вы используете Cookie, то проблема может быть в их настройке.

Alexandre-Frolov Автор вопроса
Евгений Скореев
вы делаете запрос на приватный роут?

Я добавил в yaml свой host. С oapi-codegen у меня получилось сделать так: import ( "flag" "fmt" "os" "net/http" ... e.Use(echomiddleware.CORSWithConfig(echomiddleware.CORSConfig{ AllowOrigins: []string{"http://swg.domain.ru", "http://xxx.xxx.xxx.xxx"}, AllowMethods: []string{http.MethodGet, http.MethodPut, http.MethodPost, http.MethodDelete}, })) ... но тут что-то не сработало

Alexandre-Frolov Автор вопроса
Евгений Скореев
Если да и если вы используете Cookie, то проблема ...

Cookie не использую, запрос идет на открытые роуты paths: /: get: tags: - todos operationId: findTodos parameters: - name: since in: query type: integer format: int64 - name: limit in: query type: integer format: int32 default: 20 responses: 200: description: list the todo operations schema: type: array items: $ref: "#/definitions/item" default: description: generic error response schema: $ref: "#/definitions/error"

Alexandre Frolov
Я добавил в yaml свой host. С oapi-codegen у меня ...

поглядите в панель разработчика, может найдёте чего там (вкладка Network) делаете запрос, смотрите какие заголовки отправляются и приходят

Alexandre-Frolov Автор вопроса
Евгений Скореев
поглядите в панель разработчика, может найдёте чег...

Accept application/io.goswagger.examples.todo-list.v1+json Accept-Encoding gzip, deflate Accept-Language ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Connection keep-alive Host xxx.xxx.xxx.xxx:8080 Origin http://swg.domain.ru Referer http://swg.domain.ru/ User-Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0 Т.е. заголовки CORS не формируются. А вариант один сейчас: c := cors.New(cors.Options{ AllowedOrigins: []string{"http://swg.domain.ru:8080"}, AllowCredentials: true, // Enable Debugging for testing, consider disabling in production Debug: true, })

Alexandre Frolov
Cookie не использую, запрос идет на открытые роуты...

Вам надо в миддлваре обработать cors, https://play.golang.org/p/tYXSZwMXW_- может поможет как-то. Но эта ошибка срабатывает если вы с чужого фронта лезете в свой бэкенд. Пока не могу найти свой полноценный код, это в основном для разработки. Когда запускаете фронт и бэк и пытаетесь работать. В продакшн такого кода не должно быть.

А в глобал миддлваре вам надо ссылку на функцию, сам код туда пихать не обязательно, я обычно кладу в отдельную папку.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта