3

尝试使用我们的 Azure Front Door 进行以下路由:

假设 Front Door URL 是https://foo.azurefd.net,后端池包含一个带有 URL https://foowebapp.azurewebsites.net的 Azure Web 应用程序。

我创建了一个路由规则,如下所示:

用户通过POST: https://foo.azurefd.net/api/token/12345

我希望将其定向到POST: https://foowebapp.azurewebsites.net/api/token

我使用重定向路由类型创建了规则。问题是通过前门传递时我得到一个 405 Method Not Allowed。如果我直接传递到https://foowebapp.azurewebsites.net/api/token端点,我会得到预期的响应。

为什么会发生这种情况,我需要调整 Front Door 中的其他设置吗?

编辑:我现在可以在分析流量时看到 Front Door在重定向期间将方法从POST更改为 。GET这就是我收到 405 Method Not Allowed 错误的原因。但我不明白为什么 Front Door 会将其从 a 更改POSTGET。一切都设置为HTTPSonly。我已经通过 Azure 支持提出了这个问题,但不确定我是否期望他们提供很多帮助。

4

1 回答 1

4

弄清楚了。默认情况下,Front Door 的重定向设置为类型 302(已找到)。这种重定向总是会将任何非 GET 方法更改为GET. 使用 307(临时重定向)或 308(永久重定向)将允许在不更改方法的情况下传递调用。

于 2020-04-02T21:58:17.253 回答