对servlet的Ajax请求调用不返回任何内容

时间:2014-06-19 11:29:23

标签: java jquery ajax servlets

这是我的jquery函数。它应该传递给servlet两个值并获取更新值。我检查了值是否正确,两个变量是否正确填充。不幸的是,我什么都没有得到回报。

 $("#passengers").change(function(event){

    var passengers = $("#passengers").val();
    var price = $("#price").text();

        $.getJSON('pricer', {passengers: passengers, price: price}, function(data){

            $("#price").html(data);

        });

});

这是servlet

        */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
{
    String passengers = request.getParameter("passengers");
    String price = request.getParameter("price");

    String price_update = new Gson().toJson(this.pricerBean.calculatePrice(Integer.parseInt(passengers), Float.parseFloat(price)));

    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(price_update);   
}

主要问题是我没有收到任何错误...即使一个... javascript控制台错误是空的,甚至servlet也没有显示任何错误

2 个答案:

答案 0 :(得分:2)

尝试:

response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(data)); //here data is what you want to send

首先尝试这个简单:

response.getWriter()写("你好&#34);

在ajax中:

    $.get('pricer', {passengers: passengers, price: price}, function(data){

        console.log(data);

    });

然后尝试运行它打印的内容发布给我。

console.log()在浏览器控制台中打印数据。

答案 1 :(得分:1)

使用jquery getJSON()代替get()

$.getJSON('pricer', {passengers: passengers, price: price}, function(data){
    $("#price").html(data.price_update);
});

get

$.get('pricer', {passengers: passengers, price: price}, function(data){
    // also validate data if it is  not blank
    var data = jQuery.parseJSON(data);
    $("#price").html(data.price_update);
});