ajax发布到jsp接收空字符串

时间:2014-10-28 09:12:13

标签: ajax jsp post

我使用jquery从表单中获取数据并使用ajax发布到.jsp文件。 当我尝试使用request.get参数在jsp scriplet中接收数据时,我得到null。

var values = {}; // Create empty javascript object
$("select").each(function() { // Iterate over selects
  values[$(this).attr('name')] = $(this).find(":selected").attr('data-citycode'); // Add each to features object
});
var format = "dd/mm/yyyy";
values["datepicker1"] = $("#datepicker1 div").datepicker("getFormattedDate", format);
values["datepicker2"] = $("#datepicker2 div").datepicker("getFormattedDate", format);

//var url ="list_flights.jsp";

$.ajax({
  type: "GET",
  url: "list_flights.jsp",
  async: false,
  data: {
    values: JSON.stringify(values)
  },
  error: function(data) {
    console.log(data);
  },
  success: function(data) {
    console.log(data);
    window.location = "list_flights.jsp";
  }
});

和jsp scriplet

<% out.print(request.getParameter("values")); %>
  

输出
  空

1 个答案:

答案 0 :(得分:1)

似乎ajax成功后你正在改变窗口位置

success: function(data) {  
  console.log(data);  
  window.location = "list_flights.jsp";  
}

正在发出另一个请求,并且请求中没有values属性。

success: function(data) {  
  console.log(data);  
  window.location = "list_flights.jsp?values=" + JSON.stringify(values);  
}

但是对success重定向并将ajax调用到同一个jsp没有意义。你应该从ajax调用一个servlet,它会给你响应,根据你的响应,你应该重定向到另一个页面。