我对我的API服务器(NodeJS Express)仅允许GET方法感到困惑
res.setHeader('Access-Control-Allow-Methods', 'GET');
然后我发出带有标头的CORS POST请求
headers: {
'Content-Type': 'application/json',
'X-Test-Header': 'TESTING'
}
(目的是强制浏览器在POST请求之前调用OPTIONS请求)。然后,我在Chrome调试中检查“网络”标签,它确实发送了2个请求(首先是OPTIONS,然后是POST请求)。 OPTIONS请求的响应标头为:
Access-Control-Allow-Methods: GET
问题是为什么当Allow-Methods标头中不包含POST动词时,为什么它仍然调用POST请求?
任何人都知道这一点,请向我解释。预先感谢。
P / S:使用DELETE或PUT方法,它将引发错误
has been blocked by CORS policy: Method PUT is not allowed
by Access-Control-Allow-Methods in preflight response.
我认为使用POST方法必须抛出相同的错误,以表明该方法不允许