post 尽管被拒绝,但允许请求

post request allowed although denied

我开始 ajax post 请求 php 文件,如下所示:

$.post("URL_TO_PHP_FIlE", {parameter: 1}, function(response) {
  console.log(response)
}    

我得到了回复,但这应该是不可能的,因为我的 php 文件只允许 GET 而不是 POST:

header('Access-Control-Allow-Methods: GET');

我错在哪里?

Access-Control-Allow-Methods header 用于预检响应中,以提示客户端允许使用哪些方法。它不会自动阻止任何其他类型的任何传入请求 - 这是您必须在您身边实现的东西,例如通过返回 405 Method Not Allowed 状态代码。

if ( $_SERVER['REQUEST_METHOD'] !== 'GET' ) {
  http_response_code(405); exit;
}