XMLHttpRequest.open("get","http://www.baidu.com",true),url能这样设定吗?
能设定的话,XMLHttpRequest将返回什么值?

解决方案 »

  1.   

    能是能
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题页</title>
    <script type="text/javascript">
    var xmlhttp = new ActiveXObject("Microsoft.XMLhttp");
    function $(id){return document.getElementById(id)}
    function Button3_onclick() {
      xmlhttp.open("get","http://www.baidu.com/",true);
      xmlhttp.onreadystatechange = ServerProcess;   
      xmlhttp.send(null);   
    }function ServerProcess(){
      if (xmlhttp.readystate==4 ){
      if( xmlhttp.status=='200'){
      var ret=xmlhttp.responseBody;//responseBody很“纯洁”,未经任何编码处理过,所以我们用它来解码吧。不过只能用IE
      xmlhttp=null;
      ret=Bytes2BStr(ret);
      //alert(ret)
      $('info').innerHTML =ret;
      filter();
      }   
      }
    }function filter()
    {
    var tables = document.getElementsByTagName("table");
    $('info').innerHTML = tables[tables.length-3].outerHTML;
    }</script>
    </head>
    <body>
      <input id="Button3" type="button" value="查询" language="javascript" onclick="return Button3_onclick()" />
      <br>
      <div id="info"></div>
    </body>
    </html>
    <script language=vbscript>
    Function Bytes2BStr(vin)'二进制转字串
      strreturn = ""
      for i = 1 to lenb(vin)
      thischarcode = ascb(midb(vin,i,1))
      if thischarcode < &h80 then
      strreturn = strreturn & chr(thischarcode)
      else
      nextcharcode = ascb(midb(vin,i+1,1))
      strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode))
      i = i + 1
      end if
      next
      Bytes2BStr = strreturn
    End Function   
    </script>
      

  2.   

    给你写了个简单的例子,你把它保存为本地文件ajaxtest.html,分别在IE/FF中打开进行离线测试;然后把它放到你网站下http进行上线测试。自己看看效果。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>AJAX入门实例(验证跨域)</title>
    </head>
    <body>
    <p><h2>AJAX入门实例</h2></p>
    <p><h4>测试环境:<span id=ev></span></h4></p>
    <p><h4>本页地址:<span id=pageURL></span></h4><p>
    <p><h4>目标地址:<span id=targetURL></span></h4><p>
    <div id=state></div>
    <div id=status></div>
    <hr>
    <br /><br /><br />以下为本次AJAX请求所获取的返回信息:
    <div id=a style='color:#789000;border:1px solid blue;'></div>
    </body>
    </html>
    <script type="text/javascript">
    function $(id){return document.getElementById(id)}
    function createXMLHTTPObj(){
      var xmlHttp=null;
      try{xmlHttp=new XMLHttpRequest();}// Firefox, Opera 8.0+, Safari
      catch (MSIEx){// Internet Explorer
        try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
        catch (e){
          try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
          catch(e){alert('您的浏览器不支持AJAX!');}
        }
      }
      return xmlHttp;
    }
    //-----------------------------------------------------------------
    (function(){
      var testEviron=location.href.indexOf('http://')==-1?"离线测试":"上线测试";
      var URL='http://www.baidu.com';
      URL+=URL.indexOf('?')==-1?'?':'&'
      URL+=new Date().getTime();
      $('ev').innerHTML=testEviron;
      $('pageURL').innerHTML=location;
      $('targetURL').innerHTML=URL;
      
      var x=createXMLHTTPObj();
      /*调试代码*/               var state='',status='';
      /*调试代码*/               state+="AJAX请求状态变化:"+x.readyState+"<br />";
      /*调试代码*/               $('state').innerHTML=state;  
      try{
        x.open('GET',URL,true)  
        x.onreadystatechange=function(){
          /*调试代码*/           state+="AJAX请求状态变化:"+x.readyState+"<br />";
          /*调试代码*/           $('state').innerHTML=state;
          if(x.readyState==4){//注意readyState中S要大写,否则FF下会无视该判断,造成AJAX无反应的假象
            /*调试代码*/         status+="<br />AJAX响应状态变化:"+x.status+" "+x.statusText;
            /*调试代码*/         $('status').innerHTML=status;
            if(x.status==200||x.status==0){
             var ret=x.responseText;
             ret=ret.length==0?"即便程序不报错,程序走到这里,请求已经成功,但还是得不到返回信息哟~~":ret;
              /*调试代码*/       $('a').innerHTML="请求成功!:<br /><XMP>"+ret+"</XMP>";        
              x=null;
            }
            else{
             /*调试代码*/       $('a').innerHTML="请求失败!:<font color=red>"+x.status+" "+x.statusText+"</font>";
            }
          }
        }
        x.send(null)
      }
      catch(e){
        /*调试代码*/             $('a').innerHTML="AJAX错误!:<font color=red>"+e.message+"</font>";
      }
    })();
    </script>
      

  3.   

    有一点不懂,为什么下面的<script>标签对能放在<html>外面?
      

  4.   


    toury
     
    (理上网来) 好闲哦,没天都看到你,你肯定是大拿把!如果可以的话,我们可以交个朋友吗?我QQ是:543452810
      

  5.   

    6楼:可以呀。你可以规范的把脚本写在DOM中,但它的作用主要是为了针对BOM,所以也可以放到DOM外面。
    我把它放到最下面是为了偷懒,因为我的脚本要改变DOM中的元素值,所以写到上面去还要加window.onload(),烦,呵呵
    ----------------7楼:我在CSDN从不用QQ,请鉴谅。不过,现在我们就是朋友了,不是吗?