function checkLink(){
       alert("开始测试!");
       var compareUrl="192.168.0.55";//document.getElementById("compareUrl");
       var compareServiceName="orcl";//document.getElementById("compareServiceName");
       var comparePort="1521";//document.getElementById("comparePort");
       var compareUserName="he121";//document.getElementById("compareUserName");
       var comparePass="he121";//document.getElementById("comparePass");
       var str = pa+"/testLink.do?compareUrl="+compareUrl+"&compareServiceName="+compareServiceName+"&comparePort="+comparePort+"&compareUserName="+compareUserName+"&comparePass="+comparePass;
              alert("sfd"+str);
       xmlhttp.open("post",str,true);  //这里前台报:Uncaught TypeError: Cannot call method 'open' of undefined               xmlhttp.send(null);  
              alert(" 测试成功!");
              window.close();
              
    }

解决方案 »

  1.   

    有定义:
        <script type="text/javascript">
         var xmlhttp,respText;
         //创建xmlHttpReq
         function createXMLHttpRequest() {
          if (window.XMLHttpRequest) { // Mozilla 浏览器
          xmlhttp = new XMLHttpRequest();
          } else if (window.ActiveXObject) { // IE浏览器
          try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
          try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) { 
          }
          }
          }
          return xmlhttp;
         }
         还有别的方式提交url没?
      

  2.   

    post方式的话,url中是不带参数的,将你的post提交页面地址与你的参数分离开来xmlhttp.open("POST", "testLink.do", true);
        xmlhttp.setRequestHeader("Content-Length",str.length);
        xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlhttp.send(str);
      

  3.   

    var str = pa+"/testLink.do?compareUrl="+compareUrl+"&compareServiceName="+compareServiceName+"&comparePort="+comparePort+"&compareUserName="+compareUserName+"&comparePass="+comparePass;就是上面这句:前面的都不要,改成
    var str = "compareUrl="+compareUrl+"&compareServiceName="+compareServiceName+"&comparePort="+comparePort+"&compareUserName="+compareUserName+"&comparePass="+comparePass;//pa+"/testLink.do"这个是页面提交地址??xmlhttp.open("POST", pa+"/testLink.do", true);
                xmlhttp.setRequestHeader("Content-Length",str.length);
                xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xmlhttp.send(str);
      

  4.   


    还报:Uncaught TypeError: Cannot call method 'open' of undefined 
    我见过带参数的post啊
      

  5.   

    你写了createXMLHttpRequest函数,但很怀疑你有没有调用
    而且既然用的全局变量,还要返回值做什么
    function checkLink(){
      createXMLHttpRequest();
    ......
    }这样再试试吧
      

  6.   

    呃,你要理解为url中可以带参数也行,但一般那种参数其实是页面地址的一部份,一般是不包含你动态的参数的,就比如说你一个表单里面的那些项的值,一般是不在url里面的,否则,你就是在使用get了
      

  7.   

    倒是有可能,但如果xmlhttp对象如果不存在,不是应该把xmlhttp未定义么?
      

  8.   

    呵呵 多谢6楼提醒,ajax没怎么用过,犯低级错误了,另多谢crying_boy
      

  9.   

    写了var xmlhttp 就已经定义了,只是值为undefined而已