我正在调用一个servlet来获取数据库中的对象列表,并且该列表将从servlet返回为json。相同的json响应将显示在jsp表中,如下所示。
Servlet代码:
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中它有从数据库返回的数据并使用debug验证。我在这里错过了什么吗?
谢谢!
答案 0 :(得分:0)
我无法在您的Ajax请求中看到“dataType”,如:
dataType:'json'
尝试添加它。
所以,它将成为:
$.ajax({
type: "GET",
url: "./dataFetchController",
success: function(responseJson) {
//alert and success handler
},
dataType: 'json',
error : function(){
// error handler
});
dataType是您期望从服务器返回的数据类型