我有一個在 localhost:8080 上運行的 API 服務器 (gin-gonic)。所有典型的 CORS-Header 都設置為調試:當我嘗試使用簡單的前端 (swagger-ui) 測試 API 時,出現 CORS 錯誤。(招搖在本地主機上運行:9090)當一切都在同一個域上運行時,它會起作用。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 問題嗎?我對實際解釋而不是簡單的解決方案非常好奇。歡迎所有與此相關的資源(或有關 CORS 的好資源)。它在 Postman 或 CURL 中運行良好瀏覽器中的錯誤消息:
1 回答

偶然的你
TA貢獻1841條經驗 獲得超3個贊
當您將 OPTION 作為 Preflight 請求捕獲時,您的服務器應該返回成功。我在您提供的代碼中找不到回報。
您也可以嘗試使用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 關注
- 180 瀏覽
添加回答
舉報
0/150
提交
取消