1

我正在调用一个 servlet 从数据库中获取对象列表,并且该列表作为 json 从 servlet 返回。相同的 json 响应将显示在 jsp 表中,如下所示。

小服务程序代码:

        String json = new Gson().toJson(resultList); 
        response.setContentType("application/json"); //here i have the data and i came to know by debugging 
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(json);

jQuery代码:

$.ajax({
    type: "GET",
    url: "./dataFetchController",
    success: function(responseJson) {

console.log(responseJson); //it is not printing any result on firebug console

        var master = $(this).parents("table.myTable");

        $.each(responseJson, function(index, contact) {    // Iterate over the JSON array.
            // Get a new row based on the prototype row
            var prot = master.find(".prototype").clone();
            prot.attr("class", "");
            prot.find("#myName").attr("value", contact.name);
            prot.find("#myLastName").attr("value", contact.lastName);

            //master.find("tbody").append(prot);
            jQuery('table.myTable tr:last').before(prot);
        });
    },
    error: function(ob,errStr) {
        $('#contactForm #formProgress').html('');
        $('#contactForm #formProgress').html('<img src="./public/images/error.png" /> <span style="color:red">Save is not successful. Try Again.</span>');
    }
});

我没有得到任何 json 结果。我尝试使用控制台打印它但没有结果,但在 servlet 中它有从数据库返回的数据并使用调试进行验证。我在这里错过了什么吗?

谢谢!

4

1 回答 1

0

我在您的 Ajax 请求中看不到“dataType”,例如:

数据类型:'json'

尝试添加它。

所以,它会变成:

$.ajax({
 type: "GET",
 url: "./dataFetchController",
 success: function(responseJson) {
       //alert and success handler
 },
 dataType: 'json',
 error : function(){
   // error handler
 });

dataType 是您期望从服务器返回的数据类型

于 2013-08-08T12:15:25.143 回答