2014-10-28 52 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,它會給你響應,並根據你的響應重定向到另一個頁面。