Ajax請求Spring Mvc 時總是返回 302 Moved Temporarily


功能上主要是實現在前台點擊保存按鈕,單元格變成文本框,修改值后請求后台保存數據。但在做的過程中,ajax 請求總是不能請求到后。打開瀏覽器調試,查看到http狀態碼總是返回 http/1.1  302 Moved Temporarily.  在網上查看解釋給的是:  

你所連接的頁面進行了Redirect 
302 Found 類似於301,但新的URL應該被視為臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀態信息是“Moved Temporatily”,而HttpServletResponse中相應的常量是SC_MOVED_TEMPORARILY,而不是SC_FOUND。出現該狀態代碼時,瀏覽器能夠自動訪問新的URL,因此它是一個很有用的狀態代碼。為此,Servlet提供了一個專用的方法,即sendRedirect。使用response.sendRedirect(url)比使用response.setStatus(response.SC_MOVED_TEMPORARILY)和response.setHeader("Location",url)更好。這是因為: 

首先,代碼更加簡潔。 
第二,使用sendRedirect,Servlet會自動構造一個包含新鏈接的頁面(用於那些不能自動重定向的老式瀏覽器)。 
最后,sendRedirect能夠處理相對URL,自動把它們轉換成絕對URL。 
注意這個狀態代碼有時候可以和301替換使用。例如,如果瀏覽器錯誤地請求http://host/~user(缺少了后面的斜杠),有的服務器返回301,有的則返回302。 
嚴格地說,我們只能假定只有當原來的請求是GET時瀏覽器才會自動重定向。
參考資料: http://zhidao.baidu.com/question/16119833.html?si=4

調試許久找到問題所在。主要是后台controller 方法中添加了AvoidDuplicatSubmission 的注解

 

ajax 請求

 

 

java 后台controller 方法

 

解決問題的方法就是去掉controller 方法中,紅色框框的注解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM