ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Golang] gin-gonic 헤더 Access-Control-Allow-Origin 여러개 추가 방법
    언어/Golang 2017. 3. 20. 13:49

    CORS 정책상 Access-Control-Allow-Origin은 1개만 등록이 가능합니다. Origin을 *로 할 경우 전 URL에 대해 허용이 가능하지만 아래와 같은 경우면 특정 URL을 지정해야 합니다.

    c.Header("Access-Control-Allow-Credentials", "true")
    c.Header("Access-Control-Allow-Origin", "*") // 에러 - Credentials이 true일 경우 특정 URL 1개만 허용


    필자가 사용한 방법은 허용할 URL 리스트를 만든 다음, 요청된 URL이 해당 리스트에 맞는지 체크하는 형식으로 문제를 해결했습니다.

    allowUrlList := []string{"http://foo.com", "http://bar.com", "http://zoo.com"}
    var allowUrl string
    for _, url := range allowUrlList {
    if c.Request.Header.Get("Origin") == url {
    allowUrl = url
    break
    }
    }

    c.Header("Access-Control-Allow-Headers", "Content-Type, Authorization, Origin")
    c.Header("Access-Control-Allow-Credentials", "true")
    c.Header("Access-Control-Allow-Origin", allowUrl)


    댓글