$.ajax({
   cache: false,
        url:'omx/DeviceServlet/getList',
        data:{ChannelCount:$('#ChannelCount').val()},
        success:function(req){ 
        alert(req);
        }
 });Ajax这样写有错吗,我在servlet把list存进requset,list确定有值,servlet也确定调用到了(后台有打印我想要的值),但是在前台我怎么也获取不到存进request的list,是什么原因?

解决方案 »

  1.   

    你在Servlet里,是怎么把List写入response的?
      

  2.   

    是写入request,request.setAttribute("list", list);
    list里面是有数据的,另外我request随便装入一个字符串在前台都获取不到,request.setAttribute("test", "123");这样在前台都获取不到,我那个ajax是在一个文本框失去焦点的时候执行的,是不是逻辑就错误了呢?
      

  3.   

    写入request,AJAX咋可能取得到你还不太理解AJAX啊。你要把结果转为JSON字符串或XML字符串,然后写入response中去。
      

  4.   

    是不太理解,刚用的,呵呵。不过我这个ajax只是用来调用servlet还有传递参数,我没有在ajax里面取的,但是在页面哪里都取不到,这是什么原因呢,还是ajax的原因吗?
      

  5.   

    你用jquery,异步请求,你为什么还要把数据存入requet范围?
    给你个例子,看如下:
    servlet中,你不需要把结果集再塞入request范围,因为jquery调用方法之后,有个回调。结果自动回传递到前台,也就是你的req中。
      function checkFileExist(fileName){
    var flag = null;
    $.ajax({url:"<%=request.getContextPath()%>/<%=PFMConstants.PFM_MODULE_FILE_UPLOAD_INFO%>/checkFileName.htm", //URL
    cache:"False",
                         type:"get",
                         async: true,//异步校驗 
    data:{fileName:fileName},//傳入的參數
    success:function(data, textStatus){//回調方法
    var isOk = JSON.parse(data);
    if(isOk != null){
    if(isOk == false){
    alert("檔案不存在!");
    flag = false;
    }else if(isOk == true){
    flag = true;
    }
    }
    }});
    return flag;    
        }
      

  6.   

    你的返回值类型是什么,boolean吗?就是说用JSON.parse()就可以将返回值转换成json类型了吗,list集合可不可以这样转换?
      

  7.   

    是不太理解,刚用的,呵呵。不过我这个ajax只是用来调用servlet还有传递参数,我没有在ajax里面取的,但是在页面哪里都取不到,这是什么原因呢,还是ajax的原因吗?
      

  8.   


    1、我返回类型是boolean2、collection类型的,json可以直接转,放心。
      

  9.   

    提示'JSON' is undefined    需要引入什么吗
      

  10.   

    <script type="text/javascript" src="${ctx}/js/jquery/jquery-1.6.4.min.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/jquery.validate.min.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/jquery.metadata.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/messages.js"></script>
    <script type="text/javascript" src="${ctx}/js/jquery/validate.js"></script>
    <script type="text/javascript" src="${ctx}/js/json2.js"></script>
      

  11.   

    $.ajax({
         cache: false,
         async: true,
                  url:'omx/DeviceServlet/getList',
                  data:{ChannelCount:$('#ChannelCount').val()},
                  success:function(req){
                // var list = JSON.parse(req);
                             alert(JSON.parse(req));
                  }       
                });
    怎么我这样老是报了一个语法错误的?
      

  12.   


    什么错误。还有,有时候,也不用一定要转。JSON.parse(req);
      

  13.   

    页面报了一个语法错误。我现在后台把list存进request,我这个ajax只是用来调用servlet还有传递参数,我没有在ajax里面取的,但是在页面哪里都取不到,这是什么原因呢,还是ajax的原因吗?。
      

  14.   

    servlet里这样写:out.write("gg");
    这样在前台就能获取到字符串信息"gg"了,
    一般情况下是把你要从后台传给前台的数据装载一个json中,在传到前台的,
    不知道我的理解是不是对的?
      

  15.   


    你用的servlet
    你需要在servlet将list先转换为json格式。我用的是spring mvc,直接就可以转。
    你参考一下:
    http://tochal.iteye.com/blog/722265
      

  16.   

    现在是就算我在servlet中存一个字符串request.setAttribute("test", "123"); 
    这样在前台都获取不到,实在不知道为什么..?
      

  17.   


    1、你照着做了吗?2、现在是就算我在servlet中存一个字符串request.setAttribute("test", "123");  
    这样在前台都获取不到,实在不知道为什么..?
    你是如何取的?用jquery还是直接在jsp中,${test}?
      

  18.   

    遇到问题,多想想这个过程,想想原理。servlet中用request存,jsp中用el或者request直接取,肯定没问题(注意不用jquery)如果用jquery请求,则参照15楼。明白了吗?
    自己认真思考一下。
      

  19.   

    <%=request.getAttribute("test")%>
    这样都取不到,实在是想不通为什么,百度也百了,都没解决才来这里发的。我那个ajax是在文本框失去焦点的时候调用的,是不是这个原因?在servlet里面打印是有打印,但是我试了重新刷新页面就没反应,不知道为什么..
      

  20.   

    这样<%=request.getAttribute("test")%>应该是取不到的,因为不是同一个请求
      

  21.   

    那我现在怎么获取到那个request呢,我是用jstl遍历那个list的,请指教!