2014-10-28 85 views
0

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

这是我的代码:

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

任何想法?!

我正在使用:

Scala 2.10 and Play! Framework 2.3.3

谢谢!

回答

5

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

+0

我明白everthing。我在Play的文档中找到了一些关于此主题的代码。非常感谢! – 2014-10-29 18:11:31

+0

欢迎您:) – 2014-10-29 18:12:28