CORS را برای یک Go backend پیکربندی کنید

به گفته mozilla.org، اشتراکگذاری منابع متقاطع (CORS) یک مکانیسم مبتنی بر هدر HTTP است که به سرور اجازه میدهد هر مبدا (دامنه، طرح یا پورت) را غیر از منبع خود که مرورگر باید از طریق آن منابع بارگیری کند را نشان دهد.
هنگام نوشتن یک Backend برای برنامه خود با استفاده از golang در محیط محلی، می توانید بدون نیاز به پیکربندی CORS، درخواست هایی را به API های خود انجام دهید، اما پس از استقرار بک اند، به CORS نیاز خواهید داشت، در غیر این صورت در برقراری ارتباط با باطن با خطا مواجه خواهید شد.
این آموزش به شما کمک می کند این خطا را در یک Go backend که از فریم ورک gin استفاده می کند برطرف کنید.
ابتدا با استفاده از خط زیر میان افزار cors را دانلود و نصب می کنیم
go get github.com/gin-contrib/cors
سپس اکنون به فایل main.go خود وارد کنید
import "github.com/gin-contrib/cors"
حالا بیایید میان افزار cors را اضافه کنیم
کد زیر را در فایل main.go اضافه کنید
func main() {
r := gin.Default()
config := cors.DefaultConfig()
config.AllowAllOrigins = true
config.AllowMethods = []string{"POST", "GET", "PUT", "OPTIONS"}
config.AllowHeaders = []string{"Origin", "Content-Type", "Authorization", "Accept", "User-Agent", "Cache-Control", "Pragma"}
config.ExposeHeaders = []string{"Content-Length"}
config.AllowCredentials = true
config.MaxAge = 12 * time.Hour
r.Use(cors.New(config))
}
فایل main.go شما اکنون باید شبیه زیر باشد.
package main
import (
"time"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"github.com/username/appname/controllers"
)
func init() {
//initialize app
}
func main() {
r := gin.Default()
config := cors.DefaultConfig()
config.AllowAllOrigins = true
config.AllowMethods = []string{"POST", "GET", "PUT", "OPTIONS"}
config.AllowHeaders = []string{"Origin", "Content-Type", "Authorization", "Accept", "User-Agent", "Cache-Control", "Pragma"}
config.ExposeHeaders = []string{"Content-Length"}
config.AllowCredentials = true
config.MaxAge = 12 * time.Hour
r.Use(cors.New(config))
//Add endpoints here
r.POST("/ping/", controllers.Pong)
r.Run()
}
اکنون می توانید به راحتی go backend خود را با موفقیت بر روی یک پلت فرم بدون سرور مانند راه آهن اجرا و اجرا کنید و خطای CORS باید اکنون برطرف شود.
سوالی دارید؟