servlet代码:
String succ = "false";
JSONObject json = new JSONObject();
json.put("succ", succ);
PrintWriter pw = response.getWriter();
System.out.println("json:"+json);
pw.print(json.toString());
pw.write(json.toString());
return ;
JS代码:
$.ajax({
url:url,
type:'post',
dataType:'json',
data:{
email:$('#name').val(),
pwd:$("#pwd").val(),
pwd2:$("#pwd2").val(),
number:$("#number").val(),
hoby:a.join(","),
check:$("#checked").val()
},
success:function(json){
alert("11");
alert(json);
/* alert(json);
var dd = eval("("+json+")");*/
},
error:function(){
alert("22");
},
})
最后执行的都是error,不知道是怎么回事!
控制台打印出来josn是:json:{"succ":"false"}
如果是执行的error,说明是你后台的代码应该出现了异常,你打个断点,看看到底是什么问题
Url必须是服务器上的servlet的路径
你需要在servlet指定响应头类型信息 :
response.setContentType("application/json;charset:utf-8");
或者 response.setHeader("Content-Type","application/json;charset:utf-8");
不然后台如果传的是HTML,会有DIV等html元素加在返回元素里面,在页面的dataType:'json'进行转换的时候出错。
打个断点看下能不能进servlet 如果不能进 很能是你的url路径没有指定
你的程序执行了error。 那么先确定你是前台还是后台出问题了。
如果不能进servlet,前台ajax就出问题了。 检查下url。 如果能进servlet,返回给ajax时直接执行了error,那后台逻辑有问题, 调试一下。 而且你的error还多了一个逗号
应该是流没有刷新,给你个我写的实例
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
String method = request.getParameter("method");
String result = "";
if("showWorkList".equals(method)){
result = showWorkList(request,response);
}
System.out.println(result);
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
}
$.ajax({
type: "post",
dataType: "json",
url: 'http://localhost:8080/work/WorkList?method=showWorkList',
data: {pageSize : pageSize, pageIndex : pageIndex},
success: function (obj) {
var success = obj.success;
if(success){
var data = obj.data;
alert(data);
}else{
alert(obj.msg);
}
},
error: function(data) {
alert("error:"+data.responseText);
}
});