我可以使用403(禁止)进行http重定向吗?

时间:2014-10-28 19:22:09

标签: scala redirect playframework

我正在使用Play开发应用程序!框架。当我必须使用代码403(禁止)进行重定向传递http状态时,重定向不起作用,但是当我使用303(参见其他)时工作正常。

这是我的代码:

Future.successful( play.api.mvc.Results.Redirect("http://otherDomain", 
                            play.api.http.Status.FORBIDDEN)
                  .discardingCookies( DiscardingCookie("key") ))

有什么想法吗?!

我正在使用:

Scala 2.10并播放!框架2.3.3

谢谢!

1 个答案:

答案 0 :(得分:5)

这与浏览器处理重定向的方式有关。有一组重定向代码,您可以在此处阅读:http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx。当浏览器看到这样的代码时,它会查看响应的Location标题,其中包含要重定向到的网站。并重定向。但是,如果状态代码不是重定向(例如403)之一,则即使存在Location标题,浏览器也不会尝试重定向您。因此,您应该使用正确的响应代码(例如,302'找到'或play.api.http.Status.FOUND)来执行重定向。