ajax中get和post兩種請求的區別
Ajax(Asynchronous Javascript And XML)即非同步JavaScript和XML,通過在後臺與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新;這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新(即區域性重新整理);而傳統的網頁(不使用 AJAX)如果需要更新內容,必須過載整個網頁頁面。
瞭解完定義後,就要使用ajax技術了,不過在使用之前我們要先了解請求時get和post的區別以及兩者各自在何時使用最為合適。
get和post的區別:
1.get是把引數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。
2.對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。兩種方式的引數都可以用Request來獲得。
3.get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,因伺服器的不同而異。
4.get安全性非常低,post安全性較高。
5.傳遞引數時
get方式:在請求時,要連帶傳送相關引數,將引數附加在URL上即可,例如:
post方式:在請求時,要連帶傳送相關引數,將要傳送的引數塞到send()中即可,例如:<span style="font-size:18px;"> var urlAndqueryString = "yourApp?name=justin&age=30"; xmlHttp.open("GET", urlAndqueryString); xmlHttp.send(null); </span>
<span style="font-size:18px;">var url = "yourApp"; var queryString = "name=justin&age=30"; xmlHttp.open(“POST", url); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(queryString);</span>
6.通過URL傳送請求時,,GET 方式把表單內容放在前面的請求頭中,也就是在位址列中能夠看到傳遞的引數;而 POST 則把這些內容放在請求的主體中了,同時 POST 中把請求的 Content-Type 頭設定為 application/x-www-form-urlencoded,即將傳遞的引數放在了請求的檔案中,位址列不可見;但兩者傳送的正文都是一樣的。
7.Get請求有如下特性:它會將資料新增到URL中,通過這種方式傳遞到伺服器,通常利用一個問號?代表URL地址的結尾與資料引數的開端,後面的引數每一個數據引數以“名稱=值”的形式出現,引數與引數之間利用一個連線符&來區分。
Post請求有如下特性:
資料是放在HTTP主體中的,其組織方式不只一種,有&連線方式,也有分割符方式,可隱藏引數,傳遞大批資料,比較方便。
使用場合:
與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。
然而,在以下情況中,請使用 POST 請求:
1.無法使用快取檔案(更新伺服器上的檔案或資料庫)
2.向伺服器傳送大量資料(POST 沒有資料量限制)
3.傳送包含未知字元的使用者輸入時,POST 比 GET 更穩定也更可靠