我这边也遇到过这种情况  是jquery版本的问题  一开始用的是  jquery-1.4.1.min.js  后来用的jquery-1.6.2.min.js 可以的   你试试看 

解决方案 »

  1.   

    我用的jquery1.7的 那我试试其他版本 
    大侠们 救命啊
      

  2.   

    response.setContentType("application/json;charset=UTF-8");
      

  3.   

    dataType : "JSON",
    中JSON改为小写呢
      

  4.   

    我记得jquery的dataType应该都是小写字母的
      

  5.   

    本来想偷懒的,写个完整的,如果OK,记得结贴。
    List<Project> list=applicationService.getProjectName();
    Iterator<Project> iterator = list.iterator();
    StringBuffer jsonStr = new StringBuffer();
    while (iterator.hasNext()) {
        Project project = iterator.next();
        jsonStr.append("{\"id\":\"").append(project.getId())
       .append("\",\"name\":\"").append(project.getName())
       .append("\"}");
        if (iterator.hasNext())
            jsonStr.append(",");
    }
    response.setContentType("application/json;charset=UTF-8");
    response.getWriter().write("[" + jsonstr + "]");
    return null;
      

  6.   

    以前我遇到过这样的问题,看是不是因为action返回的信息有错
      

  7.   

    换成新版本后 也能进action 我设了断点 也能进去  说明ajax也能用 就是不到success方法
      

  8.   


    放心 每个回答的我都会给分 一会加分
    你这方法我也试了 还是到error方法
    顺便问一下 怎么用火狐的看返回的信息? 我也用了firebug 但是不知道看哪里 高手指点一下
      

  9.   

    也换<script language="javascript" src="js/jquery-1.4.2.js"></script>了
    dataType:"json"也小写了
    response.setContentType("application/json;charset=UTF-8");也设置返回类型是json了
    这咋这么难呢 我要是吧dataType设置成text就没问题  
    谁知道咋看返回的东西的 既然是parsererror 那肯定是返回的不是json格式的
    那我write()里面写的是标准的json,也不到success方法 ,为啥啊为啥啊
      

  10.   

    直接返回[{"id":1283,"name":"Internal CR Print Smart Grade"},{"id":1284,"name":"TAL PLM Import & Export"}]找个字符串能欧诺个json拿到不,
    我这边直接写找个字符串当json接收没问题
      

  11.   

    你后边写那个return null干啥
      

  12.   

    你把dataType改成text得到的结果是啥,发出来看看,怎么会是个html呢
      

  13.   

    因为是struts1 用ajax来异步获取List这里必须是return null 否则你随意return个 strut就会往配置里找 就可能到其他界面,return null就可以避免, 然后把返回的值写到response里 关键是把json写进去 竟然传不到success方法 
      

  14.   

    怎么发图片啊 我怎么发布上去  这里我发现个问题 要是返回的text 那String数据在那html里 而且在<tr><td>里
      

  15.   

    那找个问题应该是你处理逻辑里报了错了吧!
    你配置错误跳转页面了吧,返回的应该是你的错误跳转页面吧,不然text返回的应该是和json一样的字符串的
      

  16.   

    第一步 :在后台打印转换后的json的数据,看看数据的格式是否正确
    第二部 :查看前台是否引入了正确的js文件
    第三步 :编写的js是否正确据分析楼主第一步应该没有问题。
      

  17.   


    用9楼的方式还是不行,还了jquery版本还是不行的话,建议还是用firebug调试,看看到底jsp中jquery方法执行到那里报错了。
    另外,把这段error: function(res, text) {
      alert("错误信息:" + text);
      }
    });拿掉。
      

  18.   

    error: function(res, text,aa) {
      alert("错误信息:" + text +aa);
      }
    看看aa打印出来是什么,这个里面的信息才是你的准确错误信息,text只是错误状态
      

  19.   

    打印的信息的parseerrorundfine
    没定义?  这是为啥?返回的值怎么没定义呢 我在那里response.getWriter().write("{\"result\":\"true\", \"msg\":\"删除成功\"}"); write了
      

  20.   

    http://img.my.csdn.net/uploads/201204/10/1334043929_6711.jpg
      

  21.   

    List<User> list = this.getUserService().getUserDao().getList(
    "from User");
    Map hashMap = new HashMap();
    hashMap.put("success", true); hashMap.put("totalProperty", list.size());
    List root = list;
    JSONArray ja = JSONArray.fromObject(root); hashMap.put("root", ja);
    JSONObject jo = JSONObject.fromObject(hashMap); try {
    System.out.println(jo);
    response.getWriter().print(jo);
    } catch (IOException e) {
    e.printStackTrace();
    }你试试这种格式
      

  22.   


    首先
    ajax别用post提交
    用get其次你考虑给ajax加同步锁
    async:false,
      

  23.   

    换成get也试了 同步锁也设了   还是不行  
    我在火狐上设置个断点 图在上面 发现到这success后不进去 到另一个scuuess()没有参数的这里跳了 
    看来问题很清楚了,没有返回来值  但是问题也就在这 我就算在action里write的是大家说的标准的json,竟然也不行,JSONObject jo = JSONObject.fromObject(hashMap);这句话打印出来就是标准的json格式的
    还有其他的原因吗?
      

  24.   

    [{"id":1283,"name":"Internal CR Print Smart Grade"},{"id":1284,"name":"TAL PLM Import & Export"}
    打印出来的是这些  list里我放的是project对象,值有好多 是不是因为长度的问题呢 因为数据有500条(id,name)但是也不对呀 我就放一个
    ("{\"result\":\"true\", \"msg\":\"删除成功\"}");这也不到success
      

  25.   

     hashMap.put("success", true);
     然后再hashMap.put("这里是你的list");
    然后再JSONObject jo = JSONObject.fromObject(hashMap)
    最后 response.getWriter().print(jo);看看
      

  26.   

    如果都不行的话,楼主可能是你return null;这里出问题了,貌似我以前也出现过这样的问题,你改成不要返回值的试试
      

  27.   

    如果不要return null 怎么写呢  用的struts1 exectute方法必须return个ActionForward
      

  28.   

    return null ;有问题吧,我这个和你很类似,就可以。你可以看看~~
    public void findBranchorg() {
    Company company = new Company();
    List<Company> companyList = service.findBranchorg(company);
    JSONArray json = JSONArray.fromObject( companyList);

    HttpServletResponse response =ServletActionContext.getResponse();
    response.setCharacterEncoding("utf-8");
    try {

    response.getWriter().print(json);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }       $.ajax({
    type:"post",
    data:{idBranchorg:idBrachorg},
    url:"../sVal.action",
    dataType:"json",
    success:function(sValJson ){
    $("#userCode").val(sValJson[0].sVal);
            },
            error:function(){
                alert("error!");
            }
    });
      

  29.   

    那怎么到你自定义的方法呢 你url里没有写findBranchorg这方法吧 
    那url改成"http://localhost:8080/FBTrack_PMO/transfer/getProj!findBranchorg.fb",我试试能不能进自定义的方法
      

  30.   

    你那个是struts2的写法 struts1没有ServletActionContext
      

  31.   

    另外 我发觉这问题可能是我这项目的问题 ,我在另一项目里 用struts2 就没问题,能进success 但是这个死活进不去 除非改成text类型的  诡异啊诡异,text就能返回json就不行,在另一个项目里text json都没问题 
    json里就写一简单的json格式的字段
      

  32.   

    text能返回,可能就是格式有问题吧。
    以前我在做项目的时候也碰到过这个问题,因为当时赶的比较急,所以把一个json分开返回了、
      

  33.   


     $("#brachOrg").change(function(){
          $("#subOrg").empty();
          $("#Org").empty();
          var str="<option>全部</option>";
          $("#Org").append(str);
    var idBrachorg =$("#brachOrg").val();
    findsuborg(idBrachorg);   
    findsVal(idBrachorg);


    });类似这种!
      

  34.   

    那我用ajax的时候 到后台 把list放到request范围内 再在页面中把list的值遍历到下拉菜单 可以实现吗
    也不用操作json数据了 既然到后台了放request里不行吗?
    再页面用<s:property >获取那list 
      

  35.   

    毛都没长全就学人家用jquery ajax 大神来给你解决吧 让你这狗日的安心吃饭饭吧 犹豫你用的是$.ajax方法 异步请求进入服务端  服务端返回后要判断 返回后进入哪个方法 (是success方法或还是fail方法) 所以你才返回的时候 要写个boolean类型的变量 名字可以写成success 就这么写吧 定义:
      Map result = new HashMap();
      result.put("success", true);
      result.put("list", list);
      JSONObject json = JSONObject.fromObject(result); 
      response.getWriter().write(json);
    拿去试试 有问题加我Q 632167558
      

  36.   

    看了 你用text返回的时候返回的不是有td标签的东西吗?说明你中间是不是用了拦截器等东西吧你返回的东西修改了,你在页面拿到的东西已经不是json的东西了,他按json去拿的话肯定就不对了的
      

  37.   

    我用struts2的时候也是这样...ajax也执行了,但是就是到不了success...到现在还没找到原因= = 我在等你的答案...
      

  38.   

    嗯 你说的有理 我这中间确实有拦截器拦截的 因为用的struts1,我看看拦截里怎么处理的