Ajax非同步互動,post和get提交的區別__Ajax

來源:互聯網
上載者:User

<script type="text/javascript">
    var xmlHttp;
    /*建立非同步對象,根據瀏覽器區別建立*/
    function createXmlHttpRequest(){
     if(window.ActiveObject){
      xmlHttp=new ActiveObject("Microsoft.XMLHttp");
     }else if(window.XMLHttpRequest){
      xmlHttp=new XMLHttpRequest();
     }
    }
    
    //readyState:請求的狀態,4為資料接收成功
    //伺服器返回的http請求響應值,200表示請求成功
    //對返回的資料進行decodeURI解碼
    function handleStateChange(){
     if(xmlHttp.readyState==4&&xmlHttp.status==200){
      var responseDiv=document.getElementById("serverResponse");
      responseDiv.innerHTML=decodeURI(xmlHttp.responseText);
     }
    }
    
    //對發送的參數進行兩次encodeURI編碼
    function createQueryString(){
     var firstName=document.getElementById("firstName").value;
     var birthday=document.getElementById("birthday").value;
     var queryStr="firstName="+firstName+"&birthday="+birthday;
     return encodeURI(encodeURI(queryStr));
    }
    //get請求的方法,請求的url後面帶參數,sendd(null)方法中傳null值。
    function doRequestUsingGET(){
     createXmlHttpRequest();
     var queryString="test.jsp?";
     queryString+=createQueryString()+"&timestamp="+new Date().getTime();
     xmlHttp.onreadystatechange=handleStateChange;
     alert(queryString);
     xmlHttp.open("GET",queryString);
     xmlHttp.send(null);
    }
    //post請求的方法,參數傳在send方法中
    function doRequestUsingPOST(){
     createXmlHttpRequest();
     var url="test.jsp?timestamp="+new Date().getTime();
     var queryString=createQueryString();
     xmlHttp.open("post",url);
     xmlHttp.onreadystatechange=handleStateChange;
     xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     xmlHttp.send(queryString);
    }
   </script>

  </head>
 
  <body>
  <h2>請輸入姓名和生日</h2>
    <form action="">
     <input type="text" id="firstName" /><br/>
     <input type="text" id="birthday" />
    </form>
    <form action="">
     <input type="button" value="GET" onclick="doRequestUsingGET()" /><br/>
     <input type="button" value="POST" onclick="doRequestUsingPOST()"/>
    </form>
    <div id="serverResponse"></div>
  </body>

 

伺服器段的代碼如下:

<%
 if(request.getMethod().equals("POST")){
  response.getWriter().write("post方式提交"+request.getParameter("firstName"));
 }else if(request.getMethod().equals("GET")){
  response.getWriter().write("get方式提交"+request.getParameter("firstName"));
 }
%>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.