Access-Control-Allow-Headers header
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Tiêu đề HTTP Access-Control-Allow-Headers phản hồi được sử dụng trong phản hồi cho yêu cầu preflight để chỉ ra các tiêu đề HTTP có thể được sử dụng trong yêu cầu thực tế.
Tiêu đề này là bắt buộc nếu yêu cầu preflight chứa Access-Control-Request-Headers.
Note:
Các tiêu đề yêu cầu được CORS chấp nhận luôn được phép và thường không được liệt kê trong Access-Control-Allow-Headers trừ khi cần bỏ qua các hạn chế bổ sung của danh sách được chấp nhận.
| Loại tiêu đề | Tiêu đề phản hồi |
|---|
Cú pháp
Access-Control-Allow-Headers: <header-name>
Access-Control-Allow-Headers: <header-name>, <header-name>
Access-Control-Allow-Headers: *
Chỉ thị
<header-name>-
Tên của tiêu đề yêu cầu được hỗ trợ. Tiêu đề có thể liệt kê bất kỳ số tiêu đề nào, được phân tách bằng dấu phẩy.
*(ký tự đại diện)-
Bất kỳ tiêu đề nào. Giá trị
*chỉ tính là giá trị ký tự đại diện đặc biệt cho các yêu cầu không có thông tin xác thực (các yêu cầu không có cookie HTTP hoặc thông tin xác thực HTTP). Trong các yêu cầu có thông tin xác thực, nó được coi là tên tiêu đề chữ*không có ngữ nghĩa đặc biệt. Tiêu đềAuthorizationkhông chấp nhận ký tự đại diện và luôn cần được liệt kê rõ ràng.
Ví dụ
>Triển khai tiêu đề tùy chỉnh
Dưới đây là ví dụ về tiêu đề Access-Control-Allow-Headers.
Nó chỉ ra rằng tiêu đề tùy chỉnh có tên X-Custom-Header được hỗ trợ bởi các yêu cầu CORS đến máy chủ, ngoài các tiêu đề yêu cầu được CORS chấp nhận.
Access-Control-Allow-Headers: X-Custom-Header
Hỗ trợ nhiều tiêu đề
Ví dụ này hiển thị Access-Control-Allow-Headers khi nó chỉ định hỗ trợ cho nhiều tiêu đề.
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests
Bỏ qua các hạn chế bổ sung đối với tiêu đề được CORS chấp nhận
Mặc dù các tiêu đề yêu cầu được CORS chấp nhận luôn được phép và thường không cần được liệt kê trong Access-Control-Allow-Headers, việc liệt kê chúng dù sao sẽ bỏ qua các hạn chế bổ sung áp dụng.
Access-Control-Allow-Headers: Accept
Xử lý yêu cầu preflight
Hãy xem ví dụ về yêu cầu preflight liên quan đến Access-Control-Allow-Headers.
Yêu cầu
Đầu tiên, yêu cầu preflight là yêu cầu OPTIONS bao gồm một số kết hợp của ba tiêu đề yêu cầu preflight: Access-Control-Request-Method, Access-Control-Request-Headers, và Origin.
Yêu cầu preflight bên dưới cho máy chủ biết rằng chúng ta muốn gửi yêu cầu CORS GET với các tiêu đề được liệt kê trong Access-Control-Request-Headers (Content-Type và X-Requested-With).
OPTIONS /resource/foo
Access-Control-Request-Method: GET
Access-Control-Request-Headers: content-type,x-requested-with
Origin: https://www.example.com
Phản hồi
Nếu yêu cầu CORS được chỉ ra bởi yêu cầu preflight được ủy quyền, máy chủ sẽ phản hồi yêu cầu preflight bằng thông điệp chỉ ra nguồn gốc, phương thức và tiêu đề được phép. Bên dưới, chúng ta thấy rằng Access-Control-Allow-Headers bao gồm các tiêu đề đã được yêu cầu.
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://www.example.com
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: Content-Type, x-requested-with
Access-Control-Max-Age: 86400
Nếu phương thức được yêu cầu không được hỗ trợ, máy chủ sẽ phản hồi bằng lỗi.
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| Fetch> # http-access-control-allow-headers> |