将Json提交给Spring MVC Controller,将jsp作为ajax响应字符串返回

时间:2018-01-06 11:55:34

标签: javascript jquery ajax spring spring-mvc

我正在创建Spring mvc app。我通过AJAX向控制器提交JSON字符串。我想要的是将页面重定向到不同的JSP页面。

现在我从控制器返回视图,但不是重定向,而是返回对先前AJAX请求的响应。

Spring Controller

@RequestMapping("/hello")
public String hello() {
    return "powerseries";
}

的Javascript / AJAX

$(document).ready(function(){   
        $('#getData').click(function(){
            var aa=JSON.stringify(answer);
            $.ajax({
    type: "POST",
    url: "hello",
    contentType: "application/json",
    dataType:'json',
    data:aa,
    cache: false,
    processData:false,
    success: function(status){
        console.log("Entered",status);
    },
    error:function(error){
        console.log("error",error);
    }
});
        });  
});  
console.dir(answer);

浏览器控制台

Browser Console showing ajax response having jsp page

2 个答案:

答案 0 :(得分:1)

当您使用AJAX时,您的MVC应该返回一个特殊的JSON响应。

例如:

@RequestMapping("/hello")
@ResponseBody
public Map hello() {
    m.put('my_redirect', 'the new url');
    return m;
}

然后在你的AJAX处理程序中处理这个响应。使用javascript的window.location.href = resp.my_redirect;转到新网址。

答案 1 :(得分:0)

如果要重定向到其他jsp页面,请在控制器方法中使用redirect

@RequestMapping("/hello")
 public String hello() {
   // return "powerseries";
   return "redirect:powerseries";
}

// Add method to controller .
@RequestMapping("/powerseries")
 public String returnPowerseries() {
  return "powerseries";
}

如果您想完全更改文档html,请使用$("html").html(response);