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