Access-Control-Allow-Methods
是一个HTTP响应头,用于指定服务器允许的CORS(跨域资源共享)请求方法。当浏览器发起跨域请求时,会先发送一个预检请求(OPTIONS请求),该请求包含了Access-Control-Request-Method
头部字段,用于询问服务器是否允许实际请求使用特定的HTTP方法。服务器通过Access-Control-Allow-Methods
响应头告诉浏览器哪些HTTP方法是允许的。
以下是一些关于Access-Control-Allow-Methods
的关键点:
-
它是一个逗号分隔的列表,指定了服务器允许的HTTP方法,如
GET
,POST
,PUT
,DELETE
等。 -
当使用通配符
*
时,它表示允许任何HTTP方法,但通常这个值仅在没有凭证(如cookies或HTTP认证信息)的请求中有效。 -
在响应预检请求时,
Access-Control-Allow-Methods
必须包含实际请求所需的方法,否则浏览器将返回错误响应。 -
服务器端的CORS配置除了
Access-Control-Allow-Methods
外,通常还需要包括Access-Control-Allow-Origin
和Access-Control-Allow-Headers
等相关头部字段。 -
可以通过浏览器的开发者工具查看响应头部字段,以验证
Access-Control-Allow-Methods
是否正确配置。
例如,在Nginx中配置Access-Control-Allow-Methods
的代码如下:
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
}
这段配置允许对/
路径的资源进行GET
, POST
, 和OPTIONS
方法的访问。