我有一個(gè)在 localhost:8080 上運(yùn)行的 API 服務(wù)器 (gin-gonic)。所有典型的 CORS-Header 都設(shè)置為調(diào)試:當(dāng)我嘗試使用簡單的前端 (swagger-ui) 測試 API 時(shí),出現(xiàn) CORS 錯(cuò)誤。(招搖在本地主機(jī)上運(yùn)行:9090)當(dāng)一切都在同一個(gè)域上運(yùn)行時(shí),它會(huì)起作用。c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Headers", "*")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")為什么這不起作用。難道這 3 條線不能解決所有 CORS 問題嗎?我對(duì)實(shí)際解釋而不是簡單的解決方案非常好奇。歡迎所有與此相關(guān)的資源(或有關(guān) CORS 的好資源)。它在 Postman 或 CURL 中運(yùn)行良好瀏覽器中的錯(cuò)誤消息:
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)您將 OPTION 作為 Preflight 請求捕獲時(shí),您的服務(wù)器應(yīng)該返回成功。我在您提供的代碼中找不到回報(bào)。
您也可以嘗試使用https://github.com/rs/cors
package main
import (
"net/http"
"github.com/gin-gonic/gin"
cors "github.com/rs/cors/wrapper/gin"
)
func main() {
router := gin.Default()
router.Use(cors.Default())
router.GET("/", func(context *gin.Context) {
context.JSON(http.StatusOK, gin.H{"hello": "world"})
})
router.Run(":8080")
}
- 1 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)
0/150
提交
取消