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