2014-10-28 86 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