解决方案 »

  1.   

    先发一个自己写的正确的,你先看看,如果不行,明天上班的时候再帮你看。public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    Map<String, List<String>> citys=new HashMap<String, List<String>>();
    List<String> bList=new ArrayList<String>();
    bList.add("东城");
    bList.add("西城");
    bList.add("崇文");
    citys.put("bj", bList);
    List<String> tList=new ArrayList<String>();
    tList.add("和平");
    tList.add("河东");
    tList.add("河西");
    citys.put("tj", tList);
    //北京-东城-西城-崇文
    //天津-和平-河东-河西

    String city=request.getParameter("city");

    List<String> list=citys.get(city);
    //System.out.println(list);
    String result="";
    for(String s:list){
    result+=s+"-";
    }
    response.setContentType("text/plain");
    PrintWriter writer=response.getWriter();//为什么该页面跳转的下一跳为02.html,servlet的功能
    writer.print(result);
    }<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title> New Document </title>
     </head>
     <body>
       
      <select id="city">
       <option value="bj">北京</option>
       <option value="tj">天津</option>
      </select>  
      <select id="country"></select>
      
      <script type="text/javascript">
       var city=document.getElementById("city");
       city.onchange=function(){
       var value=this.value;
       var xhr;
       //if和else if都不运行
       if(window.XMLHttpRequest){
       xhr=new XMLHttpRequest();   
       }else if(window.ActiveXObject){
       xhr=new ActiveXObject("Microsoft.XMLHttp");
       }    xhr.onreadystatechange=function(){//这一句的意思是等待发送的请求接收后再运行?
      
       if(xhr.readyState==4){//这句话什么意思? readyState一共有五个状态 0 未连接 1 打开连接 2 发送请求 3 交互 4 完成交互,   
          
       if(xhr.status==200){//下面的不运行代表页面有错误
       //xhr.status==200是要通过 服务器来浏览,并且服务器页面没有发生错误或者转向时才返回200状态的
      
       var content=xhr.responseText;
       var countrys=content.split("-");
      
       var c=document.getElementById("country");
       var children=c.childNodes;
       while(c.hasChildNodes()){//把之前的节点全部删除
       c.removeChild(children[0]);
       }
       //添加新的节点
       for(var i=0;i<countrys.length-1;i++){
       var option=document.createElement("option");
      
       option.innerHTML=countrys[i];
      
       c.appendChild(option);
       }
       }
       } 
       }
       xhr.open("GET","cityServlet?city=" + value,true);
       xhr.send(null);
       }
      
     </script>
      
     </body>
    </html>
      

  2.   

    $.ajax({
    async: false,
    url: "http://center.smesd.gov.cn/util?o=areaselect&supercode=1030",
    success:function(data){
       alert(data);
    }
    });看看这样行不
      

  3.   

    你的这种没有区别吧。测试了无效。我使用原生js语句调试通了。但是用jQuery的还是失败。
      

  4.   


    谢谢 你的我看过了 我用js原生语句也调试通了 现在问题是那个jQuery语句老是调试不同不知道你弄过没,如果有时间帮我调一下上面那个URL。谢谢。
      

  5.   

    你到底输出的是什么东西,xml还是字符串?
    xml格式的输出和字符串格式的在js的原生写法中是完全不一样的!
      

  6.   

    方式一:data: "",// 改为data: "json"
    然后保证你服务端组装的是JSON格式数据。
      

  7.   

    其实输出的内容很简单,就是返回true或false,
    1.我在JS原生语法中加了句
    XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    返回的结果是整个XML文档内容,这个需要进一步解析出需要的结果true。如下图:2.在jQuery中可以获取到想要的结果,代码:$.ajax({
                    url: "ws/RegService.asmx/CheckReg",
                    dataType: "json",
                    data: "{o:'1',name:'2'}",
                    type: "POST",//
                    contentType: "application/json; charset=utf-8",//
                    success: function(json) {
                        alert(json.d);
                        //$("#result").text(json.d);
                    },
                    error: function(x, e) {
                        alert(x.responseText);
                    },
                    complete: function(x) {
                        alert(x.responseText);
                    }
                });如图:虽然现在可以得到这样的结果,不过对JS和jQuery采用ajax访问url的内部原理很是模糊,特别是设置头类型等信息。
      

  8.   


    10300031,上海市;10300011,北京市;10300012,天津市;10300013,河北省;10300014,山西省;10300015,内蒙古自治区;10300021,辽宁省;10300022,吉林省;10300023,黑龙江省;10300032,江苏省;10300033,浙江省;10300034,安徽省;10300035,福建省;10300036,江西省;10300037,山东省;10300041,河南省;10300042,湖北省;10300043,湖南省;10300044,广东省;10300045,广西壮族自治区;10300046,海南省;10300050,重庆市;10300051,四川省;10300052,贵州省;10300053,云南省;10300054,西藏自治区;10300061,陕西省;10300062,甘肃省;10300063,青海省;10300064,宁夏回族自治区;10300065,新疆维吾尔自治区;10300071,台湾省;10300081,香港特别行政区;10300082,澳门特别行政区服务器端只是返回这些字符串,这是浏览器读取出来的,知道该怎么用jQuery获取到吗
      

  9.   

    setcontenttype这样的方法其实可以不用,
    如果是输出xml格式的话
    这个是需要的,同时js接收的时候也需要另外的代码处理
    如果只是输出字符串或者json对象之类的
    你的原生的js代码最好这样写
    function GetHttpRequest() {

    if (window.XMLHttpRequest) {

    return new XMLHttpRequest();
    } else if (window.ActiveXObject) {

    return new ActiveXObject("Microsoft.XMLHTTP");
    } else{

    return null;
    }
    }
    var oXmlHttp = GetHttpRequest();
    以下的代码你该怎么提交获取就怎么提交获取就行了
      

  10.   

    action试图转成json反回到页面试下
    JSONArray json = JSONArray.fromObject(Object);
    out.println(json.toString());
    页面在使用转换试下
    var obj = eval("(" + data + ")");  
    obj.属性名
      

  11.   

    我以前好像遇到过Jquery的$.ajax方法出问题,你可以给它加一条属性method:"POST",试试
      

  12.   

    那个网站返回的数据又不是一个json格式
    你的success怎么能这么写success: function(json) {                    
    alert(json);                
    }