功能上主要是实现在前台点击保存按钮,单元格变成文本框,修改值后请求后台保存数据。但在做的过程中,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 方法中,红色框框的注解。