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.

브라우저 호환성

BCD tables only load in the browser

함께 보기