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