get 和 post 請求概述
#jQuery#在Http中,有多種請求方式,如get、post等,但是最常用的是獲取數(shù)據(jù)和提交數(shù)據(jù),獲取數(shù)據(jù)是get請求,提交數(shù)據(jù)是post請求。
注意:HTTP請求是指客戶端向服務(wù)器發(fā)送的請求。例如使用自己的電腦打開瀏覽器,輸入“百度”的網(wǎng)址,此時就是從你的計算機向百度的服務(wù)器發(fā)起HTTP請求。
本文專門來講述一下 $.post( ) 方法
$.post( ) 方法
使用$.post()方法可以將html客戶端的內(nèi)容提交到服務(wù)器上,并且還可以將Post過來的數(shù)據(jù)存儲到數(shù)據(jù)庫中。
請注意,查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發(fā)送的:
POST /test/demo_form.php HTTP/1.1
Host: w3cschool.com
name1=value1&name2=value2
有關(guān) POST 請求的其他一些注釋:
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏為書簽
- POST 請求對數(shù)據(jù)長度沒有要求
$.post() 方法通過 HTTP POST 請求向服務(wù)器提交數(shù)據(jù)。
語法:
必需的 URL 參數(shù)規(guī)定您希望請求的 URL。
可選的 data 參數(shù)規(guī)定連同請求發(fā)送的數(shù)據(jù)。
可選的 callback 參數(shù)是請求成功后所執(zhí)行的函數(shù)名。
下面的例子使用 $.post() 連同請求一起發(fā)送數(shù)據(jù):
實例
$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("數(shù)據(jù): " + data + "\n狀態(tài): " + status);
});
});
嘗試一下 ?
$.post() 的第一個參數(shù)是我們希望請求的 URL ("demo_test_post.php")。
然后我們連同請求(name 和 url)一起發(fā)送數(shù)據(jù)。
"demo_test_post.php" 中的 PHP 腳本讀取這些參數(shù),對它們進行處理,然后返回結(jié)果。
第三個參數(shù)是回調(diào)函數(shù)。第一個回調(diào)參數(shù)存有被請求頁面的內(nèi)容,而第二個參數(shù)存有請求的狀態(tài)。
提示: 這個 PHP 文件 ("demo_test_post.php") 類似這樣:
<?php
$name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
$url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : '';
echo '網(wǎng)站名: ' . $name;
echo "\n";
echo 'URL 地址: ' .$url;
?>
get方法與post方法的區(qū)別
功能 | GET | POST |
---|---|---|
后退按鈕/刷新 | 無害 | 數(shù)據(jù)會被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會被重新提交)。 |
書簽 | 可收藏為書簽 | 不可收藏為書簽 |
緩存 | 能被緩存 | 不能緩存 |
編碼類型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data。為二進制數(shù)據(jù)使用多重編碼。 |
歷史 | 參數(shù)保留在瀏覽器歷史中。 | 參數(shù)不會保存在瀏覽器歷史中。 |
對數(shù)據(jù)長度的限制 | 是的。當(dāng)發(fā)送數(shù)據(jù)時,GET 方法向 URL 添加數(shù)據(jù);URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。 | 無限制。 |
對數(shù)據(jù)類型的限制 | 只允許 ASCII 字符。 | 沒有限制。也允許二進制數(shù)據(jù)。 |
安全性 | 與 POST 相比,GET 的安全性較差,因為所發(fā)送的數(shù)據(jù)是 URL 的一部分。
在發(fā)送密碼或其他敏感信息時絕不要使用 GET ! |
POST 比 GET 更安全,因為參數(shù)不會被保存在瀏覽器歷史或 web 服務(wù)器日志中。 |
可見性 | 數(shù)據(jù)在 URL 中對所有人都是可見的。 | 數(shù)據(jù)不會顯示在 URL 中。 |