尝试使用我们的Azure前门进行以下路由:
假设Front Door URL为https://foo.azurefd.net,并且后端池由具有URL的Azure Web应用程序组成https://foowebapp.azurewebsites.net.
我创建了一个路由规则如下:
用户通过POST:
https://foo.azurefd.net/api/token/12345
我希望它被引导到POST:
https://foowebapp.azurewebsites.net/api/token
我使用重定向路由类型创建了规则。问题是,当我通过前门时,我得到了一个405方法不允许。如果我直接传给https://foowebapp.azurewebsites.net/api/token端点,我得到了预期的响应。
为什么会发生这种情况,我需要调整前门中的另一个设置吗?
编辑:我现在可以在分析流量时看到,Front Door在重定向期间将方法从POST
更改为GET
。这就是为什么我得到405方法不允许的错误。但我不明白为什么前门会把它从POST
改成GET
。所有内容仅设置为HTTPS
。我已经在Azure的支持下提出了这个问题,但不确定我是否期待他们的帮助。
想明白了。默认情况下,Front Door的重定向设置为类型302(已找到(。这种重定向总是将任何非GET方法更改为GET
。使用307(临时重定向(或308(永久重定向(将允许在不改变方法的情况下传递调用。