📜  HTTP 标头 |访问控制允许标头。(1)

📅  最后修改于: 2023-12-03 14:42:00.431000             🧑  作者: Mango

HTTP 标头 | 访问控制允许标头

简介

在 Web 应用程序开发中,跨域资源共享 (CORS) 可以让 Web 应用从不同的域名下访问所需的资源。访问控制允许标头(Access-Control-Allow-Headers)是 CORS 标准中常用的标头之一,用于控制允许的 HTTP 标头。

语法

Access-Control-Allow-Headers: <header-name>, <header-name>, ...

其中,<header-name> 表示要允许的 HTTP 标头,多个标头之间用逗号分隔。

例如,要允许 Content-TypeAuthorization 两个 HTTP 标头,可以设置如下:

Access-Control-Allow-Headers: Content-Type, Authorization
使用方法

Access-Control-Allow-Headers 是响应标头,用于告诉浏览器哪些 HTTP 标头可以在跨域请求中使用。

通常情况下,浏览器在使用 XMLHttpRequest 发送跨域请求时,会先发送一个 OPTIONS 请求,在响应中会返回许多 CORS 相关的标头信息,包括 Access-Control-Allow-Headers。因此,我们需要在服务器端添加相应的响应头,以便浏览器正确识别响应。例如,在 PHP 中可以这样设置:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

以上代码中,Access-Control-Allow-Origin 是另一个 CORS 相关的标头,表示允许访问的域名。* 表示允许所有域名访问,也可以设置为具体的域名。

注意事项
  • Access-Control-Allow-Headers 只对跨域请求有效,同域请求不受影响。
  • 在设置 Access-Control-Allow-Headers 时,不需要包括常见的标头,如 Accept、Accept-Language、Content-Language、Cache-Control、Content-Type、Expires、Last-Modified、Pragma 等,这些标头都可以自由使用。
  • 对于自定义的 HTTP 标头,需要在 Access-Control-Request-Headers 中预先询问服务器是否允许使用该标头,否则服务器会忽略该标头。
参考链接