axios的用法詳解

axios: 是一個(gè)類庫(kù)咐低,基于Promise管理的Ajax庫(kù)搓幌,支持瀏覽器和nodejs的http庫(kù),常用于Ajax請(qǐng)求。

特點(diǎn)
從瀏覽器中創(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

安裝方法

使用 npm:

$ npm install axios

使用 bower:

$ bower install axios

使用 cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

axios提供了多種請(qǐng)求方式卢未,比如直接發(fā)起get或post請(qǐng)求:

執(zhí)行g(shù)et請(qǐng)求

// 為給定 ID 的 user 創(chuàng)建請(qǐng)求
axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

// 可選地携取,上面的請(qǐng)求可以這樣做
axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

在get請(qǐng)求中的鍵值對(duì)拼接成URLENCODED式的字符串然后1以問號(hào)傳遞參數(shù)的方式稚疹,傳遞給服務(wù)器香拉。

執(zhí)行post請(qǐng)求

axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

基于Promise,可以執(zhí)行多個(gè)并發(fā)請(qǐng)求:

function getUserAccount() {
  return axios.get('/user/12345');
}

function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}

axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // 請(qǐng)求現(xiàn)在都執(zhí)行完成時(shí)
  }));

也可以通過寫入配置的形式發(fā)起請(qǐng)求:
axios(config)

// 發(fā)送 POST 請(qǐng)求
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
})
    .then(function(res) {
    console.log(res)
    });

在業(yè)務(wù)中,經(jīng)常將其封裝成為實(shí)例的形式調(diào)用姻氨,便于做通用配置钓辆,
例如:

//util.js
const instance = axios.create({
    baseURL: 'http://some-domain.com/api',
    timeout: 1000,
    header: {
    'Content-Type': 'application/x-www-form-urlencoded'
    }
}) 

export default instance

index.js

<tempalte>
    <div></div>
</template>
<script>
    import Ajax from './util.js'
    export default {
    created(): {
         Ajax ( {
            method: 'post',
            url: '/user',
              data: {
                        firstName: 'Fred',
                        lastName: 'Flintstone'
                      }
        }).then(res => {
            console.log(res)
        })
        }
    }
</script>

請(qǐng)求方法的別名

axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])

標(biāo)注: 在使用別名方法時(shí), url肴焊、method前联、data 這些屬性都不必在配置中指定。

并發(fā)

處理并發(fā)請(qǐng)求的助手函數(shù)

axios.all(iterable)
axios.spread(callback)

創(chuàng)建實(shí)例
可以使用自定義配置新建一個(gè) axios 實(shí)例

axios.create([config])

var instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

更多關(guān)于axios的配置請(qǐng)參考: https://www.kancloud.cn/yunye/axios/234845

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娶眷,一起剝皮案震驚了整個(gè)濱河市似嗤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌届宠,老刑警劉巖烁落,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異豌注,居然都是意外死亡伤塌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門轧铁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來每聪,“玉大人,你說我怎么就攤上這事齿风∫┦恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵救斑,是天一觀的道長(zhǎng)童本。 經(jīng)常有香客問我,道長(zhǎng)脸候,這世上最難降的妖魔是什么穷娱? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任绑蔫,我火速辦了婚禮,結(jié)果婚禮上鄙煤,老公的妹妹穿的比我還像新娘晾匠。我一直安慰自己茶袒,他們只是感情好梯刚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薪寓,像睡著了一般亡资。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上向叉,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天锥腻,我揣著相機(jī)與錄音,去河邊找鬼母谎。 笑死瘦黑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奇唤。 我是一名探鬼主播幸斥,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咬扇!你這毒婦竟也來了甲葬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤懈贺,失蹤者是張志新(化名)和其女友劉穎经窖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梭灿,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡画侣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堡妒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片配乱。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涕蚤,靈堂內(nèi)的尸體忽然破棺而出宪卿,到底是詐尸還是另有隱情,我是刑警寧澤万栅,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布佑钾,位于F島的核電站,受9級(jí)特大地震影響烦粒,放射性物質(zhì)發(fā)生泄漏休溶。R本人自食惡果不足惜代赁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兽掰。 院中可真熱鬧芭碍,春花似錦、人聲如沸孽尽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杉女。三九已至瞻讽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熏挎,已是汗流浹背速勇。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坎拐,地道東北人烦磁。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像哼勇,于是被迫代替她去往敵國(guó)和親都伪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • axios 基于 Promise 的 HTTP 請(qǐng)求客戶端猴蹂,可同時(shí)在瀏覽器和 node.js 中使用 功能特性 在...
    Yanghc閱讀 3,652評(píng)論 0 7
  • 一院溺、安裝 1、 利用npm安裝npm install axios --save 2磅轻、 利用bower安裝bower...
    kiddings閱讀 1,762評(píng)論 0 3
  • 本周在做一個(gè)使用vuejs的前端項(xiàng)目珍逸,訪問后端服務(wù)使用axios庫(kù),這里對(duì)照官方文檔聋溜,簡(jiǎn)單記錄下谆膳,也方便大家參考。...
    JadePeng閱讀 11,147評(píng)論 1 59
  • 在學(xué)習(xí)了之前的路由vue-router和狀態(tài)管理vuex之后撮躁,就應(yīng)該是網(wǎng)絡(luò)交互了漱病。就學(xué)習(xí)尤大推薦的axios了。剛...
    VioletJack閱讀 40,067評(píng)論 18 84
  • 在學(xué)習(xí)了之前的路由vue-router和狀態(tài)管理vuex之后把曼,就應(yīng)該是網(wǎng)絡(luò)交互了杨帽。就學(xué)習(xí)尤大推薦的axios了。剛...
    神秘者007閱讀 796評(píng)論 0 9