談談jQuery中Ajax那些事
阿新 • • 發佈:2018-12-09
jQuery中的Ajax
jQuery不僅對JavaScript語言進行了封裝,也對Ajax非同步互動進行了封裝,jQuery提供了6個Ajax操作的方法:1.load()方法2.$.get()方法和$.post()方法3.$.ajax()方法4.$.getScript()方法和$.getJSON()方法jQuery除了封裝了六個Ajax操作的方法,還提供了一下幾種事件:1.ajaxStart()和ajaxStop()事件2.ajaxComplete()事件、ajaxSend()事件、ajaxError()事件和ajaxSuccess()事件
- load()方法
load()方法是jQuery中最為簡單的Ajax方法
/*load(url,data,callback)方法 引數: url:非同步請求的地址 data:非同步請求的資料 如果省略請求資料的話,當前的請求方式為GET 如果傳送請求資料的話,當前的請求方式為POST callback:非同步請求成功後的回撥函式 返回值:伺服器端的響應結果 注意:自動將返回結果寫入到目標元素中 */ //html程式碼: <button></button> //JavaScript程式碼: $('button').click(function(){ $('button').load('data/server.json',function(){ console.log('非同步請求成功....'); }); });
- get()方法
/*
$.get(url,data,callback,type)方法:請求方式為GET
引數:
url:非同步請求的地址
data:非同步請求的資料
callback:非同步請求成功後的回撥函式
type:設定伺服器端響應結果的格式
xml、html、script、json、text等
*/
$.get('data/server.json',{name:'張三'},function(data){
console.log(data);
},'json');
- post()方法
/* $.post()方法:請求方式為POST 引數: url:非同步請求的地址 data:非同步請求的資料 callback:非同步請求成功後的回撥函式 type:設定伺服器端響應結果的格式xml、html、script、json、text等 */ $.post('data/server.json',{name:"張三"},fucntion(data){ console.log(data); },'json');
- ajax()方法
/*
$.ajax(url,[settings])方法
引數:
url:請求地址
settings:設定非同步請求的引數
settings選項:物件型別
type:設定請求方式
data:傳送給伺服器端的請求資料
dataType:伺服器端響應結果的格式
success:非同步請求成功後的回撥函式
function(data,textStatus,jqXHR){}
data:表示伺服器響應的結果
textStatus:表示伺服器端當前的狀態
jqXHR:Ajax中的核心物件
*/
$.ajax('data/server.json',{
type:'get',
dataType:'text',
success:function(data){
console.log(data);
}
});
- getScript()方法
html程式碼:
<button>按鈕</button>
JavaScript程式碼:
$('button').click(function(){
//動態載入指定JavaScript檔案,並且執行
$.getScript('data/server.js',function(data){
console.log(data);
})
});
- getJSON()方法
html程式碼:
<button>按鈕</button>
JavaScript程式碼:
$('button').click(function(){
//getJSON()方法的請求方式為GET
$.getJSON('data/server.json',{name:'張三'},function(data){
console.log(data);
})
});
- 表單序列化
專門針對表單的方法,可以快速獲取表單input裡面的value,但是必須在表單中新增name屬性,否則獲取不到
html程式碼:
<form>
<input type='text'>
<input type='password'>
<input type='submit'>
</form>
JavaScript程式碼:
$('form').bind('submit',function(event){
//阻止提交按鈕的預設行為
event.preventDefault();
//表單序列化:根據表單默認同步提交獲取資料的方式
//var data=$('form').serialize();
var data=$('form').serializeArray();
//通過一部互動提交表單
$,post('data/server,json',data,function(data){
console.log(data);
});
});