<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'index.jsp' starting page</title>

  </head>
  <script type="text/javascript">
  
  var xmlHttp;
  function createXMLHttpRequest(){
      try{
        xmlHttp=new XMLHttpRequest();
      }catch(e){
         try{
           xmlHttp=ActiveXObject("Msxm12.XMLHTTP");
         }catch(e){
           try{
             xmlHttp=ActiveXObject("Microsoft.XMLHTTP");
           }catch(e){
              alert("浏览器版本过旧!");
           }
         }
      }
  
  }
      
      function startTest(){
        createXMLHttpRequest();
        if(xmlHttp!=null){
        xmlHttp.onreadystatechange=test();
        xmlHttp.open("post","F:\workspace\java\ajax\WebRoot.txt",true);
        xmlHttp.send(null);
        }
      }
      
      function test(){
        if(xmlHttp.readyState==4){
              if(xmlHttp.status==200){
                alert("test文档内容:"+xmlHttp.responseTest);
              }else{
                alert("xmlHttp.status:"+xmlHttp.status);
              }
        }else{
           alert("xmlHttp.readyState:"+xmlHttp.readyState);
           alert("xmlHttp.status:"+xmlHttp.status);
           alert("txt文件内容:"+xmlHttp.responseText);
        }

      }
  </script>
  
  <body>
   <input type="submit" id="bt_1" value="创建XMLHttpRequest对象" onclick="startTest();">
  </body>
</html>AJAX 初学遇到纠结问题,求解 以上是本人初学AJAX的一个简单例子
可是总是执行红色代码部分,问题有2个:
1.xmlHttp.readyState和xmlHttp.status的值始终等于0,这时什么原因?
2.xmlHttp.ResponseText 的结果是空的并没有获得url路径 txt文件的内容.
求解答,谢谢,纠结了5天了!

解决方案 »

  1.   


    function createXMLHttpRequest(){
      try{
      xmlHttp=new XMLHttpRequest();
      }catch(e){
      try{
      xmlHttp=ActiveXObject("Msxm12.XMLHTTP");
      }catch(e){
      try{
      xmlHttp=ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
      alert("浏览器版本过旧!");
      }
      }
      }
    方法写的有问题呢,应该判断浏览器类型来定义xmlHttp,而不是捕获异常。
    或者用jquery,ext等框架有写好的Ajax对象呢。很简单的。
      

  2.   

    楼主用的IE浏览器吗?
    try{
      xmlHttp=ActiveXObject("Msxm12.XMLHTTP");
      }catch(e){
      try{
      xmlHttp=ActiveXObject("Microsoft.XMLHTTP");
    这两个得到XMLHttpRequest对象的语句都没写new啊!
      

  3.   

    XMLHttpRequest对象的创建好像没有问题,只是readyState和status的值怎么不变,还有就是 ResponseText的结果是空的
    我这个例子主要是想读取一个txt文件的内容并在一个弹出框中显示内容就好了,但是就是出不来
      

  4.   

    建议学jquery吧。。实现ajax一个函数就够了