我上傳了幾個圖像,用Java編寫的上傳功能。只要上傳過程中有一個gif來顯示進度條。現在,當會話超時時,我將重定向到登錄頁面。重定向沒有發生,雖然位置有正確的網址
if (StringUtils.isNotBlank(request.getQueryString())) {
queryString = request.getServletPath() + "?" + request.getQueryString();
} else {
queryString = request.getServletPath();
}
LOGGER.debug("Query String:" + queryString);
if (!StringUtils.equalsIgnoreCase(StringUtils.substringAfterLast(queryString, ApplicationConstants.DOT),
ApplicationConstants.JSON)) {
request.getSession().setAttribute(ApplicationConstants.QUERY_STRING, queryString);
}
try {
LOGGER.error("In navigateToLandingPage. Redirecting to Failure View:" + this.getFailureView());
response.sendRedirect(request.getContextPath() + "/" + this.getFailureView());
// response.setHeader("Refresh", "5; URL=http://XXXX/login.htm");
} catch (IOException e) {
throw new BusinessException("Exception in redirecting", "-1", this.getClass().getCanonicalName(), e);
}
當我在分析瀏覽器通過網絡,我可以看到有302個狀態的響應,也是位置有目的URL,但有些不響應如何得到處理並停留在進度條畫面。我試圖添加 response.setHeader(「Refresh」,「5; URL = http://lXXXXX/login.htm」);如果我手動刷新我登錄頁面上的卡住頁面,我試圖添加 response.setHeader低於重定向,但沒有運氣。 任何人都可以請幫助我解決這個問題。
有一個解決方法,而不是發送302我發送901我正在檢查js和指示登錄哪些工作正常,但我打算使用重定向。
您正在使用AJAX,如果讓302通過瀏覽器處理,不會是JS可見。解決方法如您所描述的那樣返回一個不同的狀態代碼並在js中處理。 –
@ M.Deinum - 謝謝我做到了這一點,正如我上面提到的那樣,我發送了901,而且你是對的,我現在明白了,因爲重新發送了302,我無法在JS上閱讀它。我現在就關閉它:) – user3172272