如何通过Ajax查询将数据发送到Controller,然后打开一个新的JSP页面作为Controller的返回类型?

时间:2018-03-22 18:58:48

标签: javascript jquery ajax jsp

这是我遇到的问题的简化版本。如何通过AJAX查询将数据发送到Spring Boot Controller然后打开一个新的JSP页面?当我将数据发送到AJAX查询中的httdocs //root directory of your webserver | |-static | |-index.html |-serviceworker.js 到我的控制器类中的匹配URL时,似乎在该方法中运行代码但不打开JSP(或返回类型)。

例如,如果我要从Ajax查询发送以下数据

url

在我的Controller类中使用此方法

var hello = "Hello World!";

$.ajax({
         type: "POST",
         url: "/message1",
         data: { 
                 message: hello, 
               }, 
         datatype: 'json'
      });
}

@RequestMapping(value = "/message1", method = RequestMethod.POST) public String MessageReceiver(@RequestParam("message")String message, BindingResult bindingResult, Model model) { System.out.println(message); return "NewPage"; } 将在控制台中打印,但JSP页面"Hello"将无法打开并且不会提示错误?

通常,如果我只是通过href链接或按钮等调用控制器中的url(例如NewPage),则会打开/message1 JSP页面。似乎AJAX查询缺少某些东西。我是否必须将Ajax查询中的URL更新为与NewPage类似的内容(尝试过此操作,没有工作),或者向控制器添加内容,因为/message1/NewPage JSP页面无法打开

1 个答案:

答案 0 :(得分:0)

将成功回调函数添加到您的ajax中,如下所示:

$.ajax({
         type: "POST",
         url: "/message1",
         data: { 
                 message: hello, 
               }, 
         datatype: 'json',
         success: function(data){
               if(data === "NewPage"){
                    //Open new page
               }
         }
      });
}
相关问题