日期:2014-05-16  浏览次数:21152 次

Firefox能否使用ajax的POST方法接收数据? - Web 开发 / Ajax
要求是将表单内的数据使用Ajax的POST方法传到服务器,再从服务器传回客户端。IE各版本、Chrome下都能实现,而FireFox下却不能回传。请大家帮忙看看,谢谢!

文件有index.html和2.asp两个,调用index.html,在表单内输入数据,点击按钮“send”。只有FireFox不能回传数据。

index.html
HTML code

<script type="text/javascript">
function $(id){
   return document.getElementById(id);
}

function createXHR(){
  if(typeof XMLHttpRequest != "undefined"){
         return new XMLHttpRequest();
  }else if(typeof ActiveXObject != "undefined"){
         if(typeof arguments.callee.activeXString != "string"){
          var versions=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];
             for(var i=0,len=versions.length;i<len;i++){
              try{
                  var xhr = new ActiveXObject(versions[i]);
                  arguments.callee.activeXString=versions[i];
                  return xhr;
              }catch(e){}
          }
      }
         return new ActiveXObject(arguments.callee.activeXString);
  }else{
      throw new Error("No XHR object available.");    
     }
}

function getXML(XHR){
     if(XHR.readyState==4){   //4代表下载成功
      if(XHR.status>=200 && XHR.status<300 || XHR.status==304){  
          alert(XHR.responseText);
      }else{
          alert(XHR.statusText);
     }
     return true;
  }
}

function send_post(URL,para){
    var xmlHttp;
    xmlHttp=createXHR();
    xmlHttp.open('POST',URL,false);
    xmlHttp.onreadystatechange=function(){getXML(xmlHttp);};
    xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlHttp.send(para);
}
</script>

<form action="2.asp" method="post" name="form1" onsubmit="send_post('2.asp','xm=' + encodeURIComponent(document.form1.xm.value));return false">
   <input type="input" name="xm" />
   <input type="submit" value="Send" />
</form>




2.asp
VBScript code

<%
dim s
s=request.form("xm")
response.write s & "  hello,world!"
response.end
%>



------解决方案--------------------
用jQuery封装好的ajax吧