Ошибка "CORS No 'Access-Control-Allow-Origin'" возникает, когда клиент (браузер) отправляет запрос на сервер, а сервер не разрешает доступ к ресурсам из другого источника из-за политики same-origin. Это мера безопасности, которая предотвращает несанкционированный доступ к ресурсам сервера.
Для исправления ошибки с CORS в фреймворке Gin мы можем использовать пакет github.com/gin-contrib/cors. Этот пакет добавляет необходимые заголовки Access-Control-Allow-Origin к ответам сервера, чтобы разрешить доступ к ресурсам из других источников.
Для начала установим пакет с помощью команды go get:
go get github.com/gin-contrib/cors
Затем импортируем пакет в нашем приложении:
import ( "github.com/gin-gonic/gin" "github.com/gin-contrib/cors" )
Используем пакет cors, чтобы добавить middleware в наше приложение:
func main() { r := gin.Default() config := cors.DefaultConfig() config.AllowOrigins = []string{"http://example.com"} // Укажите свой домен здесь r.Use(cors.New(config)) // Здесь ваш код обработки запросов r.Run(":8080") }
В этом примере мы использовали config.AllowOrigins для разрешения доступа только с домена http://example.com. Вы можете изменить значение на свой домен или использовать "*" для разрешения доступа с любых доменов.
После добавления этого middleware, каждый ответ от сервера будет содержать заголовок Access-Control-Allow-Origin со значением домена, указанного в config.AllowOrigins, что позволит браузеру клиента получать доступ к ресурсам с этого домена.
Кроме того, пакет cors предоставляет и другие настройки, такие как разрешение запросов с разных методов (GET, POST, PUT и т.д.), разрешение отправки куки (config.AllowCredentials) и другие. Вы можете ознакомиться с документацией пакета, чтобы узнать больше о доступных настройках и их использовании.
Обратите внимание, что важно подключать middleware cors перед обработчиками маршрутов, чтобы заголовки CORS были добавлены до обработки запросов.