日期:2014-05-16  浏览次数:20800 次

jquery新手问题:$(post)方法,采用json返回,但服务器端返回后客户端没反映,去掉json格式后有反映
前端调用后台servlet代码如下:
 $.post("CarSelect",{keyword: carnameValue, type: "first"},
           function(data){
     alert(data);
    },
           "json");

后台java代码如下:
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
   
//String data = "{[\"name\":\"2\"]}";
String data = "{[1:2]}";
System.out.println(data);
out.print(data);
out.close();

奇怪的是servlet代码执行完成后,alert(data)不执行

如果将json那个参数去掉后又可以执行alert(data)
 $.post("CarSelect",{keyword: carnameValue, type: "first"},
           function(data){
     alert(data);
    });

在有json参数的情况下,前端其实有响应的结果,可就是不执行,怎么回事呢


上图中其实有返回结果 {[1:2]}的呀,哪里错了?

请大虾们指点下
jQuery JSON

------解决方案--------------------
本帖最后由 showbo 于 2013-06-23 13:36:48 编辑
jquery1.4+需要返回标准格式的字符串,你的就不是json格式的字符串。。楼主去了解下什么是json。

String data = "{\"1\":2}";


键名称为数字一定要用""括起,要不会语法错误