有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Spring控制器和jQueryAjax的java重定向

我使用jqueryajax调用Spring控制器,并根据任务结果在div中加载新内容或重定向页面。但我的重定向部分没有发生。我可以看到在STS控制台控制器被调用,但在浏览器中它从未被加载

谁能告诉我我做错了什么?我是否以正确的方式使用AJAX和Spring控制器

以下是我的代码片段:

A)AJAX调用

$('#someBtn').click(function(event) {
    $.ajax({
      type: 'POST',
      url: '/someApp/someLoc.htm',
      data: $('#someForm').serialize(),
      success: function(response) {
        $('#some-div').empty();
        $('#some-div').html(response);
      }
});

B)控制器

@RequestMapping(value = "/someApp/someLoc.htm", method = RequestMethod.POST)
public ModelAndView someTask(@ModelAttribute("someInfo") SomeInfoDto someInfo, BindingResult result) {
    if(result.hasErrors()) {
        return new ModelAndView("/myAppViewFolder/sameForm");
    }
    if(doSomethingGood()) {
        return new ModelAndView("redirect:/someApp/otherController.htm");  
    } else {
        return new ModelAndView("/myAppViewFolder/errorPage");
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您的代码没有加载页面,因为这是ajax,表单没有被提交,所以您的响应只会在js函数中返回。它将更新您的表单,但不会导航页面。您需要根据响应在客户端重定向页面

    window.location.href