برنامه نویسی

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 باید اکنون برطرف شود.

سوالی دارید؟

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا