Cors не работает на групповых маршрутах джина и голанга - PullRequest
0 голосов
/ 13 февраля 2019

Я пробую этот конкретный код, но он продолжает выдавать ошибку в

Нет 'Access-Control-Allow-Origin'

package main

import (
    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    router.Use(cors.Default())

    v1 := router.Group("/api/products")
    {
        v1.GET("/", ListOfProducts)
        v1.POST("/post",AddProduct)
    }
}

Ошибка

enter image description here

Мой интерфейс написан на Vue.js и работает на localhost:8000 localhost, а сервер работает на localhost:9000

1 Ответ

0 голосов
/ 16 февраля 2019

Хорошо, поэтому я попытался повторить это и обнаружил, что я неправильно выполнял запрос AJAX, возможно, вы допустили ту же ошибку, что и я:

С аналогичной конфигурацией:

func main() {
    router := gin.Default()
    router.Use(cors.Default())

    v1 := router.Group("/api")
    {
        v1.GET("/", func(c *gin.Context) {
            c.String(http.StatusOK, "Hello world")
        })
    }

    router.Run()
}

Этот запрос AJAX выдаст ошибку CORS, которую вы получаете:

$.get('http://localhost:8080/api').then(resp => {
  console.log(resp);
});

Но добавление "/" в конце будет работать:

$.get('http://localhost:8080/api/').then(resp => {
  console.log(resp);
});

Так что в вашем случае,попробуйте запросить URL: http://localhost:9000/api/products/ (с косой чертой в конце)

Более того, вы также можете изменить свои маршруты так:

v1 := router.Group("/api")
{
    v1.GET("/products", ListOfProducts)
    v1.POST("/products/post",AddProduct)
}

Таким образом, вы можете отправитьзапрос без косой черты в конце:)

...