Javascript Ajax總結——GET請求和POST請求


1、GET請求
GET最常用於向服務器查詢信息。可在URL末尾添加查詢字符串參數。
XHR中,傳入open()方法的URL末尾的查詢字符串必須經過正確的編碼,使用encodeURIComponent()編碼。所有名-值對兒必須由和號(&)分隔。
如:
xhr.open("get", "test.php?name1=value1&name2=value2", true);
向URL末尾添加查詢字符串參數:
 function addURLParam(url, name, value){
        url += (url.indexOf("?") == -1 ? "?" : "&");
        url += encodeURIComponent(name) + "=" + encodeURIComponent(value);
        return url;
    }
    var url = "test.php";
    //添加參數
    url = addURLParam(url, "name", "Nicholas");
    url = addURLParam(url, "hometown", "shanghai");
    //初始化請求
    xhr.open("get", url, false);

2、POST請求
POST請求向服務器發送應該被保存的數據,把數據作為請求的主體提交。
POST請求的主體可包含非常多的數據,格式不限。

默認情況下,服務器對POST請求和提交Web表單的請求會做不同的處理。
也可使用XHR來模仿表單提交
Content-Type頭部信息設置為application/x-www-form-urlencoded
以適當的格式創建一個字符串
如:
xhr.open("post", "test.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var form = document.getElementById("user");
//serialize()序列化表單數據
xhr.send(serialize(form));

test.php代碼:
<?php
    //設置頭部信息,發送給服務器的數據出現在$_POST超級全局變量中。
    //否則,要訪問同樣的數據,要用$HTTP_RAW_POST_DATA
    header("Content-Type: text/plain");
    echo <<<EOF
        Name: {$_POST["username"]}
    EOF;
?>

注:POST消耗的資源比GET更多。發送相同量的數據,GET的速度最多可以比POST快一倍。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM