我正在尝试从 MVC api 返回一个 ActionResult,如果你在帖子正文中给它一个重定向 uri,它应该重定向那个 uri。现在,如果你不给它一个 uri,它的性能很好。但是,如果您给它一个 uri,它应该重定向到该 uri,它只会返回 302 并且不会在任何地方导航。
现在我认为我遇到的一个问题是响应标头中返回的位置是 MVC 的基本 URI,然后是输入 URI。我遇到的一个问题是,我发现的所有相关文档都很糟糕。
所以我的问题是如何使用 RedirectResult 操作实际重定向到不同的 URI?我还可以重定向到当前域之外的 URI 吗?我担心我不能,因为它将基本 URI 附加到响应中的位置。它不会强制客户端浏览器导航到另一个 URI。
这是我的行动结果。
[AllowAnonymous]
public ActionResult Dispatch(Dto.GoogleAnalyticsEvent evt)
{
log.DebugFormat("Dispatch()");
if (evt.Redirect != null)
{
return new RedirectResult(evt.Redirect, false);
}
else
{
return Dispatch<Dto.GoogleAnalyticsEvent>(evt, _api.DispatchAnalyticsEvent, true);
}
}
如果您在帖子正文中给它一个 uri,这是返回的响应。响应码其实是一个 302 发现的。
Access-Control-Allow-Head... Content-Type
Access-Control-Allow-Meth... GET,POST
Cache-Control private
Content-Length 139
Content-Type text/html; charset=utf-8
Date Wed, 22 May 2013 22:42:25 GMT
Location /events/www.google.com
Server Microsoft-IIS/7.5
access-control-allow-orig... *
在此先感谢您的帮助。
澄清一下,我一直在寻找来自 API 的响应,以强制浏览器在响应时导航到 URI。虽然现在我大声输入,但似乎浏览器可能不允许这样做。发现 302 应该如何影响浏览器?