功能上主要是實現在前台點擊保存按鈕,單元格變成文本框,修改值后請求后台保存數據。但在做的過程中,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 方法中,紅色框框的注解。