ajax請求時post和get的區別是什麼

2022-07-01 18:00:20

區別:1、get把引數資料佇列加到提交表單的ACTION屬性所指的URL中,而post是通過「HTTP post」機制,將表單內各個欄位與其內容放置在「HTML HEADER」內一起傳送到ACTION屬性所指的URL地址;2、get方式,伺服器端用「Request.QueryString」獲取變數的值,對於post方式,伺服器端用「Request.Form」獲取提交的資料。

本文操作環境:windows10系統、javascript1.8.5&&html5版、Dell G3電腦。

ajax請求時post和get的區別是什麼

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、跟是一樣的,也就是說,action頁面後邊帶的參數列會被忽視;而跟是不一樣的。

另外

Get請求有如下特性:它會將資料新增到URL中,通過這種方式傳遞到伺服器,通常利用一個問號?代表URL地址的結尾與資料引數的開端,後面的引數每一個資料引數以「名稱=值」的形式出現,引數與引數之間利用一個連線符&來區分。

Post請求有如下特性:資料是放在HTTP主體中的,其組織方式不只一種,有&連線方式,也有分割符方式,可隱藏引數,傳遞大批資料,比較方便。

總而言之:當我們在提交表單的時候我們通常用post方式,當我們要傳送一個較大的資料檔案時,需要用post。當傳遞的值只需用引數方式(這個值不大於2KB)的時候,用get方式即可。

所以對於ajax提交兩者用法自然就明瞭了。

擴充套件知識:

那麼如何選擇get和post呢?

get請求的目的是給予伺服器一些引數,以便從伺服器獲取列表.例如:list.aspx?page=1,表示獲取第一頁的資料

  • 如果呼叫是要檢索伺服器上的資料則使用get,另外需要注意的是,如果要檢索的值會隨時間和更新程序的改變而改變,則要在get呼叫中新增一個亂數或者時間戳,這樣後面的呼叫才不會使用先前的不正確的快取。與post相比,get更簡單也更快,並且在大部分情況下都能用。

post請求的目的是向伺服器傳送一些引數

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

  • 向伺服器傳送大量資料(post沒有資料量限制),使用post

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

我們知道get的目的就如同其名字一樣是用於獲取資訊的。它旨在顯示出頁面上你要閱讀的資訊。瀏覽器會緩衝get請求的執行結果,如果同樣的get請求再次發出,瀏覽器就會顯示緩衝的結果而不是重新執行整個請求。這一流程不同於瀏覽器的處理過程,但是它是有意設計成這樣,使get呼叫更有效率。get呼叫會檢索要顯示在頁面中的資料,資料不會再伺服器上被更改,因此重新請求相同資料的時候會得到相同的結果。

post方法應該用於需要更新伺服器資訊的地方。如某呼叫要更改儲存在伺服器上的資料,而從兩個同樣的post呼叫返回的結果或許會完全不同,因為第二個post呼叫的值與第一個的值不相同,這是由於第一個呼叫已經更新了其中一些值。post呼叫通常會從伺服器上獲取響應而不是保持前一個響應的快取。

get請求

oBtn.onclick = function() {
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
/*
1.快取 在url?後面連線一個亂數,時間戳
2.亂碼 編碼encodeURI
*/
xhr.open('get','2.get.php?username='+encodeURI('劉偉')+'&age=30&' + new Date().getTime(),true);
xhr.send();
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出錯了,Err:' + xhr.status);
}
}
}
}

post請求

oBtn.onclick = function() {
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open('post','2.post.php',true);
//post方式,資料放在send()裡面作為引數傳遞
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明傳送的資料型別
//post沒有快取問題
//無需編碼
xhr.send('username=劉偉&age=30');
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出錯了,Err:' + xhr.status);
}
}
}
}

【相關教學推薦:AJAX視訊教學

以上就是ajax請求時post和get的區別是什麼的詳細內容,更多請關注TW511.COM其它相關文章!