主頁(yè) > 知識(shí)庫(kù) > Ajax常用封裝庫(kù)——Axios的使用

Ajax常用封裝庫(kù)——Axios的使用

熱門(mén)標(biāo)簽:外呼系統(tǒng)api對(duì)接 提高電話機(jī)器人接通率 大學(xué)校門(mén)地圖標(biāo)注 平?jīng)龈叩碌貓D標(biāo)注商戶要收費(fèi)嗎 銷(xiāo)售電銷(xiāo)機(jī)器人詐騙 福建微碼電話機(jī)器人 荊州智能電銷(xiāo)機(jī)器人 廣西智能外呼系統(tǒng)多少錢(qián) 地圖標(biāo)注與公司業(yè)務(wù)關(guān)系

Axios 是目前應(yīng)用最為廣泛的 AJAX 封裝庫(kù)

Axios的特性有:

  • 從瀏覽器中創(chuàng)建 XMLHttpRequests
  • 從 node.js 創(chuàng)建 http 請(qǐng)求
  • 支持 Promise API
  • 攔截請(qǐng)求和響應(yīng)
  • 轉(zhuǎn)換請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)
  • 取消請(qǐng)求
  • 自動(dòng)轉(zhuǎn)換 JSON 數(shù)據(jù)
  • 客戶端支持防御 XSRF

使用axios時(shí),需要通過(guò)使用script標(biāo)簽引入:https://unpkg.com/axios/dist/axios.min.js
axios的中文網(wǎng)鏈接:Axios中文網(wǎng)

Axios API

向axios()傳遞相關(guān)配置來(lái)創(chuàng)建請(qǐng)求;

  • axios(對(duì)象格式的配置選項(xiàng))
  • axios(url,config)

常用的配置項(xiàng)

  • url:用于請(qǐng)求的服務(wù)器URL
  • method:創(chuàng)建請(qǐng)求時(shí)使用的方法
  • baseURL:傳遞相對(duì)URL前綴,將自動(dòng)加在url前面
  • headers:即將被發(fā)送的自定義請(qǐng)求頭
  • params:即將與請(qǐng)求一起發(fā)送的URL參數(shù)
  • data:作為請(qǐng)求主體被發(fā)送的數(shù)據(jù)
  • timeout:指定請(qǐng)求超時(shí)的毫秒數(shù)(0表示無(wú)超時(shí)時(shí)間)
  • responseType:表示服務(wù)器響應(yīng)的數(shù)據(jù)類(lèi)型,默認(rèn)“json”
axios().then(function(response){
 //正常請(qǐng)求的響應(yīng)信息對(duì)象response
})
.catch(function(error){
 //捕獲的錯(cuò)誤
})

代碼展示如下:

script src="https://unpkg.com/axios/dist/axios.min.js">/script>
script>
 //使用axios方法    post請(qǐng)求
axios({
         url:"/pinglun",
         method:"post",
         baseURL:"http://localhost:3000",
         header:{
               "Content-Type":"application/json"
         },
        data:{
            "content":"well",
            "lyId":4
         },
    timeout:1000,
  }).then(function(res){
       console.log(res.data);
   }).catch(function(error){
       console.log(error);
})
 /script>

axios 全局默認(rèn)值的配置

axios.defaults.baseURL = 'https://xxx.xxx.com';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencode'

axios攔截器:在請(qǐng)求或響應(yīng)被then或catch處理前攔截它們

axios 的請(qǐng)求攔截器

//axios 的請(qǐng)求攔截器
axios.interceptors.request.use(function(config){
 //配置項(xiàng)config
  config.params = {
        id:2 //對(duì)配置項(xiàng)中的params進(jìn)行更改,篩選id=2
    }
   return config;//要有返回值
})
    
//axios 方法
axios("http://localhost:3000/liuyan")
.then(function(res){
      console.log(res.data);
 })
.catch(function(error){
      console.log(error);
})
    
//axios 方法
axios("http://localhost:3000/pinglun")
.then(function (res) {
    console.log(res.data);
})
.catch(function (error) {
     console.log(error);
})
//多個(gè)axios方法也可以攔截

axios 的響應(yīng)攔截器

//axios 的響應(yīng)攔截器
axios.interceptors.response.use(function(response){
     return(response.data);//response里有很多值,選擇data即可
})
    
//axios 方法
axios("http://localhost:3000/liuyan")
.then(function (res) {
      console.log(res);//response那里攔截了,已經(jīng)將數(shù)據(jù)傳成data了
})
.catch(function (error) {
     console.log(error);
})

axios的快速請(qǐng)求方法

 axios.get(url[,config])

//axios.get(url[,config])
    
axios.get("http://localhost:3000/liuyan?id=2")
 .then(function(res){
     console.log(res.data);
})
    
axios.get("http://localhost:3000/liuyan",{
   params:{
        id:1
   }
}).then(function(res){
    console.log(res.data);
})

 axios.post(url[,data[,config]])

//axios.post(url[,data[,config]]) , post請(qǐng)求,添加數(shù)據(jù)
axios.post("http://localhost:3000/users",{
    name:"laowang",
    age:23,
    class:1
})

 axios.delete(url[,config])

//axios.delete(url[,config])
axios.delete("http://localhost:3000/liuyan",{
   params:{
         id:5
    }
})

 axios.put(url[,data[,config]])

//axios.put(url[,data[,config]])
axios.put("http://localhost:3000/liuyan",{
    name:"wangshisan",
    id:11
})

XMLHttpRequest2.0,html5對(duì)XMLHttpRequest類(lèi)型全面升級(jí),使其變得更加易用、強(qiáng)大。

onload / onprogress

  XML.onload 事件:只在請(qǐng)求完成時(shí)觸發(fā)

  XML.onprogress 事件:只在請(qǐng)求進(jìn)行中觸發(fā)

//xhr.onload事件:只在請(qǐng)求完成時(shí)觸發(fā)
//xhr.onprogress事件:只在請(qǐng)求進(jìn)行中觸發(fā)
var xhr = new XMLHttpRequest();
xhr.open("get","http://localhost:3000/pinglun");
xhr.onload = function(){
     console.log("load:",this.readyState);
};
xhr.onprogress = function(e){
    console.log("progress:",this.readyState);
    //在周期性請(qǐng)求過(guò)程中,接收到的數(shù)據(jù)個(gè)數(shù)
     console.log(e.loaded);
     //接收數(shù)據(jù)的總個(gè)數(shù)
     console.log(e.total);
}
xhr.send(null);

response屬性

  以對(duì)象的形式表述響應(yīng)體,其類(lèi)型取決于responseType的值。根據(jù)responseType的值,來(lái)通過(guò)特定的類(lèi)型請(qǐng)求數(shù)據(jù)。

  responseType要在調(diào)用open()初始化請(qǐng)求之后,在調(diào)用send()發(fā)送請(qǐng)求到服務(wù)器之前設(shè)置才會(huì)有效。

//XMLHttpRequest之前的response返回
//responseText
// responseXml
var xhr = new XMLHttpRequest();
xhr.open("get","http://localhost:3000/pinglun");
xhr.onload = function(){
  var data = JSON.parse(this.responseText);
          console.log(data);
   }
xhr.send(null);
           
// xhr2.0新增的response屬性 
// response
// responseType
var xhr = new XMLHttpRequest();
xhr.open("get","http://localhost:3000/liuyan");
xhr.responseType = "json";
xhr.onload = function(){
    console.log(this.response);
}
xhr.send(null)

以上就是Ajax常用封裝庫(kù)——Axios的使用的詳細(xì)內(nèi)容,更多關(guān)于Ajax封裝庫(kù)Axios的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Vue CLI項(xiàng)目 axios模塊前后端交互的使用(類(lèi)似ajax提交)
  • Vue官方推薦AJAX組件axios.js使用方法詳解與API
  • vue項(xiàng)目使用axios發(fā)送請(qǐng)求讓ajax請(qǐng)求頭部攜帶cookie的方法
  • vue 組件的封裝之基于axios的ajax請(qǐng)求方法
  • vue結(jié)合axios與后端進(jìn)行ajax交互的方法
  • 關(guān)于vue中的ajax請(qǐng)求和axios包問(wèn)題
  • vue axios 在頁(yè)面切換時(shí)中斷請(qǐng)求方法 ajax
  • axios進(jìn)階實(shí)踐之利用最優(yōu)雅的方式寫(xiě)ajax請(qǐng)求
  • 關(guān)于前端ajax請(qǐng)求的優(yōu)雅方案(http客戶端為axios)
  • 在Vue組件化中利用axios處理ajax請(qǐng)求的使用方法
  • vue使用Axios做ajax請(qǐng)求詳解
  • VUE 更好的 ajax 上傳處理 axios.js實(shí)現(xiàn)代碼

標(biāo)簽:邯鄲 海南 黔東 德陽(yáng) 婁底 衡陽(yáng) 樂(lè)山 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax常用封裝庫(kù)——Axios的使用》,本文關(guān)鍵詞  Ajax,常用,封裝,庫(kù),Axios,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax常用封裝庫(kù)——Axios的使用》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Ajax常用封裝庫(kù)——Axios的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章