jQuery發(fā)送一個ajax請求
????????????????+?jQuery里面幫我們封裝了幾個方法
????????????????+?專門用來發(fā)送ajax請求的
????????????????????????1?$.get()?專門用來發(fā)送get請求的
????????????????????????2?$.post()?專門用來發(fā)送post請求的
????????????????????????3?$.ajax()??發(fā)送什么請求都可以(get,post,put,delete)
????????????????????????????????????==>并且還可以發(fā)送一個?jsonp?請求
????????????jQuery發(fā)送一個GET請求
????????????????????????+?語法:$.get(請求地址,需要攜帶到后端的參數(shù),成功的回調(diào)函數(shù),期望后端返回的數(shù)據(jù)類型)
????????????????????????????????==>請求地址:?你要請求的后端接口地址(必填)
????????????????????????????????==>攜帶參數(shù):?你需要給后端傳遞的參數(shù)
????????????????????????????????????????????==>可以是一個固定格式的字符串:"key1=val1&key1=val2"
????????????????????????????????????????????==>可以是一個對象{key1:val1,key2:val2}
????????????????????????????????==>成功回調(diào):當(dāng)請求成功的時候會執(zhí)行的函數(shù)
????????????????????????????????==>期望數(shù)據(jù)類型:就是你是不是需要jQuery幫你解析響應(yīng)體
????????????????????????????????????????==>默認(rèn)是不解析
????????????????????????????????????????==>當(dāng)你傳遞一個'json'的時候,會自定幫你執(zhí)行JSON.parse()
????????????jQuery發(fā)送一個POST請求
????????????????????????+?語法:$.post(請求地址,需要攜帶到后端的參數(shù),成功的回調(diào)函數(shù),期望后端返回的數(shù)據(jù)類型)
????????????????????????+?四個參數(shù)和$.get是一模一樣的
????????????jQuery的$.ajax方法
????????????????????+?用來發(fā)送綜合ajax請求的(GET,POST,PUT,DELETE)
????????????????????+?語法:$.ajax(對象)
????????????????????????????==>對象是對本次請求的所有配置
????????????????????????????==>$.ajax({
????????????????????????????????????url:"",?????//?請求地址(必填)
????????????????????????????????????type:"",????//?請求方式(GET,POST,...),默認(rèn)是GET,
????????????????????????????????????method:"",??//?同type
????????????????????????????????????data:"",????//?攜帶到后端的參數(shù)
????????????????????????????????????dataType:"",//?期望后端返回的數(shù)據(jù)類型,默認(rèn)不解析
????????????????????????????????????async:true,?//?是否異步,默認(rèn)是true
????????????????????????????????????success:function(){},//成功的回調(diào)
????????????????????????????????????error:function(){},??//失敗的回調(diào)
????????????????????????????????????timeout:數(shù)字,//?單位是毫秒,超時時間(超過你寫的時間沒有響應(yīng),就算失敗)
????????????????????????????????????cache:true,??//?是否緩存,默認(rèn)是true
????????????????????????????????????context:上下文,//?改變回調(diào)函數(shù)里面的this指向
????????????????????????????????????????......
????????????????????????????})
????????????$.ajax里面失敗的回調(diào)
????????????????==>不光是請求失敗的時候會觸發(fā)
????????????????==>jQuery認(rèn)定失敗就是失敗
????????????????????==>dataType寫成json的時候,jQuery會幫我們執(zhí)行JSON.parse()
????????????????????==>后端返回的不是一個json格式的字符串的時候
????????????????????==>執(zhí)行JSON.parse()就會報錯
????????????????????==>也會執(zhí)行失敗的回調(diào),請求雖然成功,但是解析失敗也是失敗
????????????????????==>JSON.parse("hello?world")==>就會報錯了
????????????$.ajax里面是否緩存的問題
????????????????==>這個請求要不要緩存
????????????????==>當(dāng)兩次請求地址一樣的時候,就會緩存
????????????????==>如果你把cache寫成false,表示不需要緩存
????????????????==>jQuery就會自動在你的請求后面加一個參數(shù)_=時間戳
????????????????????==>第一次請求:http://localhost/post.php?_=時間戳
????????????????????==>第二次請求:http://localhost/post.php?_=時間戳
????????????$.ajax里面的回調(diào)this指向的問題
????????????????==>ajax的回調(diào)里面默認(rèn)this指向jQuery加工做的ajax對象
????????????????==>context的值你寫的是誰,回調(diào)函數(shù)里面的this就是誰
????????????$.ajax里面的請求方式的問題
????????????????==>$.ajax方法里面,type表示請求方式
????????????????==>jQuery還給了我們一個參數(shù)叫做method
????????????????==>也表示請求方式
????????????????????==>當(dāng)你寫請求方式的時候
????????????????????==>可以寫成type:'POST'
????????????????????==>也可以寫成method:'POST'
????????????$.ajax里面的接收響應(yīng)的問題(2015年以后的版本才有Promise的形式)
????????????????==>jQuery默認(rèn)把ajax封裝成了promise的形式
????????????????==>你可以用success選項接收成功的回調(diào)
????????????????==>也可以用.then()的方式接收響應(yīng)
?jQuery發(fā)送一個GET請求
????????//?使用回調(diào)函數(shù)接收返回的結(jié)果
????????$.get('./get.php',?{?a:?1,?b:?2?},?function?(res)?{
????????????console.log(res)
????????},?'json');
????????//?使用Promise接收返回的結(jié)果
? ? ? ? ?$.get('./get.php',{message:'promise'}).then(function(res){
? ? ? ? ? ? ?console.log(res)
? ? ? ? ?})
????????//?使用await接收返回的結(jié)果
? ? ? ? ?async?function?getData(){
? ? ? ? ? ? ?var?res?=?await?$.get('./get.php',{message:'promise'});
? ? ? ? ? ? ?console.log(res)
? ? ? ? ?}
? ? ? ? ?getData()
?jQuery發(fā)送一個POST請求
????????$.post('./post.php',?{?cc:?1,?dd:?2?},?function?(res)?{
????????????console.log(res)
????????});
? jQuery的$.ajax方法
????????$.ajax({
????????????url:?'./post.php',
????????????type:?'get',
????????????success:?function?(res)?{
????????????????console.log(res);
????????????????console.log(this)
????????????},
????????????error:?function?()?{
????????????????console.log('失敗的回調(diào)')
????????????},
????????????//?dataType:'json'
????????????//?cache:false,
????????????//?context:{"message":"hello"}
????????})