2014-10-28 31 views
0

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

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")); %> 

输出

+0

为什么成功'window.location =“list_flights.jsp”;' – 2014-10-28 09:35:43

回答

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,它会给你响应,并根据你的响应重定向到另一个页面。