1. 程式人生 > >ajax-使用get方法和POST方法向伺服器傳送引數

ajax-使用get方法和POST方法向伺服器傳送引數

目錄

使用get方法:

使用POST方法:


  void open(String method,String url,boolean asyncn,String username,String password);

  這個方法會建立對伺服器的呼叫。有兩個必要引數,還有三個可選引數。要提供呼叫的特定方法(GET、POST 或PUT),還要提供所呼叫資源的URL,是伺服器上檔案的地址

 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。然而,在以下情況中,請使用 POST 請求:

           無法使用快取檔案(更新伺服器上的檔案或資料庫)

           向伺服器傳送大量資料(POST 沒有資料量限制)

           傳送包含未知字元的使用者輸入時,POST 比 GET 更穩定也更可靠

 另外還可以傳遞一個boolean 值,指示這個呼叫是非同步還是同步。預設值為true,表示請求本質上是非同步的。如果這個引數為false,處理就會等待,知道從伺服器返回響應為止。

      伺服器接收請求

 JavaScript使用

XMLHttpRequest物件的POSTGET方法,將資料封裝到URLRequest中,向伺服器提交資料。

 ASP.NET中,可以使用QueryStringFormParams收集客戶機傳上來的資料。

使用get方法:

 

HtmlPage1.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
        function loadXMLDoc(str)
        {
            var xmlhttp;
            if (str.length == 0)
            {
                document.getElementById("myDiv").innerHTML = "";
                return;
            }
            if (window.XMLHttpRequest)
            {
                xmlhttp = new XMLHttpRequest();
            }
            else
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.open("GET", "re01.aspx?name="+str , true);
            xmlhttp.send();
            xmlhttp.onreadystatechange = callback;

            function callback()
            {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                }
            }
        }
    </script>
</head>
<body>
    <form name="form1">
        請輸入姓名:
        <input id="Text1" name="Text1" type="text" onblur="loadXMLDoc(this.value)" />
        <br />

        反應:
        <div id="myDiv"></div>
    </form>
    
</body>
</html>

re01.aspx.cs:


        protected void Page_Load(object sender, EventArgs e)
        {
            string n = Request.Params["name"];
            //string n = Request.QueryString["name"];
            Response.Write("你好" + n + ",祝你今天工作愉快");
        }

使用POST方法:

HtmlPage1.html:

<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
        function loadXMLDoc(str)
        {
            var xmlhttp;
            if (str.length == 0)
            {
                document.getElementById("myDiv").innerHTML = "";
                return;
            }
            if (window.XMLHttpRequest)
            {
                xmlhttp = new XMLHttpRequest();
            }
            else
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.open("POST", "re01.aspx", true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.send("name="+str );
            xmlhttp.onreadystatechange = callback;

            function callback()
            {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                }
            }
        }
    </script>
</head>
<body>
    <form name="form1">
        請輸入姓名:
        <input id="Text1" name="Text1" type="text" onblur="loadXMLDoc(this.value)" />
        <br />

        反應:
        <div id="myDiv"></div>
    </form>
</body>

re01.aspx.cs:

        protected void Page_Load(object sender, EventArgs e)
        {
            string n = Request.Params["name"];
            //string n = Request.QueryString["name"];
            Response.Write("你好" + n + ",祝你今天工作愉快");
        }