我正在使用澤西島的網絡應用程序。我正在嘗試使用URIBuilder和seeOther響應來實現事後處理。目標是重定向到瀏覽器已經在的相同URI,但強制GET。它的工作原理有點像這樣:澤西島 - 重定向使用得不到,導致重定向循環
- 請求通過PUT
- PUT請求處理
- SeeOther響應返回
什麼應該發生的是,瀏覽器拿起303查看其它的當選,在它接收的URI上執行GET。不幸的是,發生的事情是它在URI上執行PUT(據我所知),並且PUT將它發送回上面的步驟1,導致重定向循環。
任何想法這裏有什麼問題嗎?
private Response giveSeeOther(){
/*Get the base URI builder*/
final UriBuilder uriBuilder = m_uriInfo.getBaseUriBuilder();
/* Some stuff to create the URI */
final Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("uid", getUid());
final URI redirectUri = uriBuilder.path(SomeObject.class).
path(SomeObject.class, "get").
buildFromMap(parameterMap);
/* See Other (303) */
return Response.seeOther(redirectUri).build();}
這就是查看其他方法的代碼。我不確定你想看哪些其他代碼,但請告訴我。
你的'seeOther'的代碼看起來很好(不是我理解uriBuilder用類做什麼)。要檢查的一件事是,只能從PUT處理程序調用'giveSeeOther()',而不是從通用處理程序調用'giveSeeOther()'。我也很想知道哪些用戶代理可以看到這種行爲。 – Guss 2009-09-09 10:58:25