java - 使用 Spring Controller 和 jQuery AJAX 进行重定向

标签 java jquery ajax spring spring-mvc

我正在使用 jQuery AJAX 调用 Spring Controller ,根据任务结果,我要么在 div 中加载新内容,要么重定向页面。但我的重定向部分没有发生。我可以在 STS 控制台 Controller 中看到被调用,但在浏览器中它永远不会被加载。

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

这是我的代码片段:

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) Controller

@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");
    }
}

最佳答案

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

window.location.href 

关于java - 使用 Spring Controller 和 jQuery AJAX 进行重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27608439/

相关文章:

javascript - 点击jquery mobile过滤数据时如何获取详细信息?

javascript - Ajax 调用 promise 未得到解决

php - 使用自己的 API 时防止无限 AJAX 循环

javascript - 试图删除最近创建的 div (AJAX)

java - 顽固的 JComboBox

java - java如何在配置键中生成时间值?

javascript - 如何定义 'overflow' 属性

php - AJAX 在脚本结束前停止执行

java - 持久化@Column nullable = false 可以插入null

java - Java可设置过期的全局分布式锁