这两天在做一个项目,分类想用slect联动,但遇到“不能得到描述信息:Not Found”问题,求助...
js代码如下:var req;
    window.onload=function()
    {//页面加载时的函数
    }
    
    function Change_Select(){        //当第一个下拉框的选项发生改变时调用该函数
      var col = document.getElementById('column1').value;
      var url = "select?id="+ col;
      
      if(window.XMLHttpRequest){
          req = new XMLHttpRequest();
      }else if(window.ActiveXObject){
          req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      if(req){
          req.open("GET",url,true);
          //指定回调函数为callback
          req.onreadystatechange = callback;
          req.send(null);
      } 
    }
    
      //回调函数
    function callback(){
      if(req.readyState ==4){
        if(req.status ==200){
          parseMessage();//解析XML文档
        }else{
          alert("不能得到描述信息:" + req.statusText);
        }
      }
    }
    
    //解析返回xml的方法
    function parseMessage(){
      var xmlDoc = req.responseXML.documentElement;//获得返回的XML文档
      var xSel = xmlDoc.getElementsByTagName('select');
      //获得XML文档中的所有<select>标记
      var select_root = document.getElementById('column2');
      //获得网页中的第二个下拉框
      select_root.options.length=0;
      //每次获得新的数据的时候先把每二个下拉框架的长度清0
      
      for(var i=0;i<xSel.length;i++){
            var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
            
            //获得每个<select>标记中的第一个标记的值,也就是<value>标记的值
            var xText = xSel[i].childNodes[1].firstChild.nodeValue;
            
            //获得每个<select>标记中的第二个标记的值,也就是<text>标记的值
                var option = new Option(xText, xValue);
            
            //根据每组value和text标记的值创建一个option对象
                //var  option2=String.formCharCode(option);
        try{
              select_root.add(option);//将option对象添加到第二个下拉框中
        }catch(e){
        }
      }
    }        
 
jsp代码:<select name="column1"   id="column1"  onchange=" Change_Select()">
  <option value="0"  >请选择</option>
 <%
      List<column1> columns=column1.findAll();
      for(int i=0;i<columns.size();i++){
          column1 col=columns.get(i); 
                                   
  %>
  <option value="<%=col.getCid1()%>"  ><%=col.getCname1() %></option> 
  <% }
  %>              
   </select>&nbsp;&nbsp;<select name="column2"  id="column2" >
                                                                                             <option value="0"   >请选择</option>       
</select></td>
servlet代码public class SelectServlet extends HttpServlet
{    private static final long serialVersionUID = 1L;    public SelectServlet()
    {
        super();
    }    public void destroy()
    {
        super.destroy();
    }    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
       // response.setCharacterEncoding("GBK");
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");
        request.setCharacterEncoding("GBK");
        response.setCharacterEncoding("UTF-8");
        int targetId = Integer.parseInt(request.getParameter("id"));
       // targetId=new String(targetId.getBytes("ISO-8859-1"),"gbk");//将已经乱码的参数转码为中文
        
        System.out.println(targetId);
        // 获得请求中参数为id的值
        String xml_start = "<selects>";
        String xml_end = "</selects>";
        String xml = "";
  
       List<column2>  columns=column2.findAll(targetId);
       column2 col;
       for(int i=0;i<columns.size();i++){
           col=columns.get(i);
           xml += "<select><value>" + col.getCid2()+ "</value><text>"  + col.getCname2()+ "</text></select>";       }
  
        String last_xml = xml_start + xml + xml_end;
        response.getWriter().write(last_xml);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
        this.doGet(request, response);
    }xml配置:
 
<servlet>
    <servlet-name>SelectServlet</servlet-name>
    <servlet-class>com.zsq.javabean.SelectServlet</servlet-class>
  </servlet>
    <servlet-mapping>
    <servlet-name>SelectServlet</servlet-name>
    <url-pattern>/servlet/SelectServlet</url-pattern>
  </servlet-mapping>
   <welcome-file-list>
    <welcome-file>addNews.jsp</welcome-file>每次运行都是提醒“不能得到描述信息:Not Found”,求助各位网友!

解决方案 »

  1.   

    这么多代码,作为外人看太晕了,你自己分析啊。
    比如说提示的这个:不能得到描述信息:Not Found;
    你就看你的这个代码:
     if(req.status ==200){
              parseMessage();//解析XML文档
            }else{
              alert("不能得到描述信息:" + req.statusText);
            }
    alert一下req.status是否等于200。如果不是200,你提问题就可以只用一句话“为什么不是200?”。什么东西都一股脑贴上来,谁看了不晕。