嘿,我遇到了以下问题。 这是jspx文件的内容:
function postSMTH() {
$.ajax({
type: "POST",
url: document.getElementById("urltxt").value,
data: parameters,
});
}
<input type="hidden" value="${pageContext.request.contextPath}/foo/foo2/foodat" name="urltxt" id="urltxt"/>
<div class="foodat"><a href="javascript:postSMTH();"><spring:message code="foo_foo2_foodat_text" text="FOODAT"/></a></div>
因此,如果我按下提交按钮,则调用postSMTH
函数并将ajax对象粘贴到Controller,如下所示:
@Controller
@RequestMapping(value="/foo")
public class FooController {
..............
@RequestMapping(value="/foo2", method=RequestMethod.POST)
public String homePOST(HttpServletRequest request) {
........
}
@RequestMapping(value="/foo2", method=RequestMethod.GET)
public String homeGET(HttpServletRequest request) {
........
}
@RequestMapping(value="/foo2/foodat", method=RequestMethod.POST)
public String doTHAT(HttpServletRequest request) {
// check authorization
Map fooMap = request.getParameterMap();
// do something in the Database, depending on the paramMap
return "redirect:/foo/foo1";
}
}
关于数据库一切正常,但问题是,最后的重定向不起作用。它只停留在页面foo2。
我是Spring的新手,也许是某个地方的一个小错误。我不能自己解决。
如果有人会有一些暗示会很好。感谢
答案 0 :(得分:4)
您正在使用jquery ajax调用进行异步表单提交。因此,在您的请求完成后,您需要使用javascript更改文档位置。例如,像这样:
$.ajax({
type: "POST",
url: document.getElementById("urltxt").value,
data: parameters,
complete: function() {
window.location.replace(...);
}
});
答案 1 :(得分:0)
它不会重定向,因为您通过ajax提交。您需要自己处理重定向。也许这个非常受欢迎的问题会有所帮How to manage a redirect request after a jQuery Ajax call