本帖最后由 showbo 于 2013-12-28 13:04:57 编辑

解决方案 »

  1.   

    function selectrequest() {
         var selecttype = document.getElementById("selecttype");
         var keyword = document.getElementById("keyword");
         createXMLRequest();
         var url = "bookServlet";// 这一行。
         xmlrequest.open("POST", url, true);
         xmlrequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
         xmlrequest.onreadystatechange = processResponse;
         var payload = "action=selectbooks&selecttype="+selecttype.value+"&keyword="+keyword.value; // 这一行。
         xmlrequest.send(payload);
        }你这个地方,是不是写错了你用的post方法,所有要查询的东西,都要放在send里面啊你试试看,而且,按你的情况,应该是要么就没有链接没有建立成功,要么就是后台处理出了问题,没有返回值。
      

  2.   

    什么叫,调试才可以出数据?你这里是用异步获取数据的。所以,会导致一个情况就是,在还没有返回值的时候,就执行了这么一段:if(selecttype.value!= "" &&  keyword.value!= "") {
         selectrequest();
         return true;
        }
    在请求还么有返回的时候,这里就执行了return true;如果这个return跟你的逻辑有影响,就是这里的问题。