Access-Control-Allow-Headers

Access-Control-Allow-HeadersAccess-Control-Request-Headers를 포함하는 preflight request의 응답에 사용되는 헤더로, 실제 요청때 사용할 수 있는 HTTP 헤더의 목록을 나열합니다.

요청에 Access-Control-Request-Headers 헤더가 포함되어 있을 경우, 이 헤더를 포함하여야 합니다.

Header type Response header
Forbidden header name no

구문

Access-Control-Allow-Headers: <header-name>[, <header-name>]*
Access-Control-Allow-Headers: *

지시자

<header-name>
지원하는 헤더의 이름입니다. 쉼표로 구분하여 원하는 만큼 헤더를 나열할 수 있습니다.
* (와일드카드)
"*" 값은 자격 증명이 없는 요청(쿠키 혹은 HTTP 인증 정보가 없는 요청)일 경우 특수한 와일드 카드로 처리됩니다. 자격증명을 포함하는 경우 단순히 "*"라는 이름을 갖는 특별한 의미가 없는 헤더로 취급됩니다. 단, Authorization 헤더는 와일드카드에 포함되지 않으며 명시적으로 나열해야 합니다.

예제

사용자 정의 헤더

다음은 Access-Control-Allow-Headers 헤더가 어떤 식으로 작성되는지에 대한 예시입니다. CORS에서 안전한 헤더외에도 X-Custom-Header라는 사용자 정의 헤더가 서버에 대한 CORS 요청에 의해 지원됨을 나타냅니다.

Access-Control-Allow-Headers: X-Custom-Header

여러 개의 헤더

이 예시는 여러 개의 헤더를 지정할 때 Access-Control-Allow-Headers가 어떤 식으로 작성되는지 보여줍니다.

Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests

Preflight 요청 예시

사전 요청에서  Access-Control-Allow-Headers 이 사용된 경우의 예제를 보도록 합시다.

요청

Preflight 요청은 Preflight 요청 헤더인 Access-Control-Request-Method, Access-Control-Request-Headers Origin, 이 세가지 Preflight 요청 헤더를 포함하는 OPTIONS 요청입니다.

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org

응답

만약 서버가 DELETE 메소드에 CORS 요청을 허용한다면 Access-Control-Allow-Methods에 DELETE, 그리고 다른 지원하는 메소드를 포함하여 응답합니다.

HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400

요청된 메소드가 지원되지 않으면 서버는 오류로 응답합니다.

명세

Specification Status Comment
Fetch
The definition of 'Access-Control-Allow-Headers' in that specification.
Living Standard Initial definition.

브라우저 호환성

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Access-Control-Allow-HeadersChrome Full support 4Edge Full support 12Firefox Full support 3.5IE Full support 10Opera Full support 12Safari Full support 4WebView Android Full support 2Chrome Android Full support YesFirefox Android Full support 4Opera Android Full support 12Safari iOS Full support 3.2Samsung Internet Android Full support Yes
Wildcard (*)Chrome Full support 63Edge Full support 79Firefox Full support 69IE No support NoOpera Full support 50Safari No support NoWebView Android Full support 63Chrome Android Full support 63Firefox Android No support NoOpera Android Full support 46Safari iOS No support NoSamsung Internet Android Full support 8.2

Legend

Full support  
Full support
No support  
No support

함께 보기