当使用http而不是https时,Azure Function POST被解释为GET



我有一个Azure函数。NET Core 3.1端点,我从Postman向该端点发送POST命令。当我使用https(SSL(向端点发送请求时,一切正常。当我使用http到达同一个端点时,传入HttpRequest的方法是"GET"而不是"POST"。我对host.json文件没有任何兴趣,除了我的函数可以采用GET或POST方法之外,这个函数应用程序也没有其他异常。这是我的主机.json:

{
"version": "2.0"
}

我的任何功能:

[FunctionName("GraphQL")]
public IActionResult Get
(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "graphql")] HttpRequest req,
ILogger log
)
{
// ... req.Method === "GET" here when under only http, even when a POST
}

我相信,通过HTTP发送的HTTP请求可能会收到302响应,因此会重定向它。

重定向时,它不会重定向为POST,而是重定向为GET,您的函数会将其视为GET。

在你的Azure功能应用程序设置/自定义域上,尝试将HTTPS仅设置为true,看看它是否能解决问题。

最新更新