【发布时间】:2015-02-11 20:23:57
【问题描述】:
我有一个运行 ServiceStack v3.9.71 的 ASP.Net MVC 站点。我有一个新的 ServiceStack API,它被配置为在 ~/api/* 可用,但需要将来自旧位置 ~/service/* 的 POST 请求重定向到新的 API,但是我会遇到问题。
我尝试过使用 url 重定向,但这样做时 POST 变成了 GET 并且 POST 数据丢失了。
<rule name="GetVenuesByLocation" stopProcessing="true">
<match url="^service/getvenuelistbylocation/$" />
<action redirectType="Temporary" type="Redirect" url="/api/VenueListByLocation" />
</rule>
这可以实现吗?如果可以,有人可以指出我正确的方向吗?
谢谢,西蒙
【问题讨论】:
-
您可以简单地将旧 URI 上的请求通过服务器端 HttpClient 调用代理到新 URI。
-
您能否使用 Fiddler 或浏览器开发人员工具栏中的“网络”选项卡来确保在您访问
/service/getvenuelistbylocation.时发生 HTTP 307 根据 (IIS 6) this 和 (IIS 7) @ 987654322@ HTTP 307 临时重定向 Web 浏览器应重新发出带有数据的 POST。 -
@paaschpa 似乎由于某种原因,301 重定向发生在 307 之前,这可能解释了帖子值的丢失。但是为什么是301?结果是 301 后跟 307 后跟 404。抛出 404 是因为 GET 请求没有任何操作。
-
当我尝试发布到旧网址时,我在 Fiddler 中看到了它。
标签: asp.net asp.net-mvc servicestack