首先,.get和.get和.post其實都是.ajax的一種,在.ajax的一種,在.ajax中有一個type屬性,專門用來指定是get請求還是post請求的。如下:
$.ajax({
url:”路徑”,
type:”post/get”,
datatype:”json”,
//成功的回調函數
success:function(data){
alert(“回調函數成功了”);
},
//失敗的回調函數
error:function(){
alert(“服務器請求失敗”);
},
舉個栗子:
<button onclick="sendJson()">原生Json數據交互測試</button>
<button onclick="sendJson2()">Json數據交互測試</button>
</body>
<script type="text/javascript">
function sendJson(){
$.ajax({
url:"${pageContext.request.contextPath }/item/jsontest.action",
type:"post",
data:'{"id":1,"name":"李思思","price":2300,"createtime":"2017-09-09 12:23:09"}',
contentType:"application/json;charset=utf-8",
success:function(data){
alert(data.id+":"+data.name);
}
})
}
function sendJson2(){
$.post("${pageContext.request.contextPath }/item/jsontest2.action",
{"id":1,"name":"張三","createtime":"2017-09-09 12:23:09"},function(data){
alert(data.name);
},"json")
}
</script>
//發送請求前調用,可以放一些“正在加載”之類的話
beforeSend:function(){
alert(“正在加載”);
}
});
所以無論是get請求還是post請求,都可以用ajax來寫。
下面我們來說一下get和post的區別:
1.安全性:get是通過http協議的header發送請求,所以會將參數拼接在地址欄中,所以安全性很差;
post是通過http協議的body發送請求,地址欄中並不會出現,所以相對安全;
還有一點,用get方法發送請求會被客戶端瀏覽器緩存,通過查看歷史記錄可以查看到用戶信息,所以非常不安全。
2.傳送大小:get只能傳送2kb,而post一般不受限制
3.效率:get效率高,post效率低
4.get就是爲了從服務器得到數據,而post則是發送數據
.get()方法使用GET方式來進行異步請求,它的語法結構爲:.get( url [, data] [, callback] )
解釋一下這個函數的各個參數:
url:string類型,ajax請求的地址。
data:可選參數,object類型,發送至服務器的key/value數據會作爲QueryString附加到請求URL中。
callback:可選參數,function類型,當ajax返回成功時自動調用該函數。
.post()方法使用POST方式來進行異步請求,它的語法結構爲:
.post(url,[data],[callback],[type])這個方法和.post(url,[data],[callback],[type])這個方法和.get()用法差不多,唯獨多了一個type參數,那麼這裏就只介紹type參數吧,其他的參考上面.get()的。type:type爲請求的數據類型,可以是html,xml,json等類型,如果我們設置這個參數爲:json,那麼返回的格式則是json格式的,如果沒有設置,就和.get()的。type:type爲請求的數據類型,可以是html,xml,json等類型,如果我們設置這個參數爲:json,那麼返回的格式則是json格式的,如果沒有設置,就和.get()返回的格式一樣,都是字符串的。
$.post(“/login”,{id:’123’,name:’小明’},function(data){ },"json")
下面我們來說一下getJSON():
getJSON()和get是一樣的,都是get請求,這就決定了,發送的data數據量不能太多,否則造成url太長接收失敗(getJSON方式是不可能有post方式遞交的)。
區別是,getJSON專門請求json數據的,而且getJSON可以實現跨域請求。語法格式如下:
getJSON(url,[data],[callback])
url:string類型, 發送請求地址
data :可選參數, 待發送 Key/value 參數 ,同get,post類型的data
callback :可選參數,載入成功時回調函數,同get,post類型的callback