vue專案axios使用及axios的配置介紹

2021-10-06 02:50:57 字數 4642 閱讀 1637

axios 是乙個基於 promise 的 http 庫,可以用在瀏覽器和 node.js 中

以下主要是vue專案使用方式的介紹

npm install axios
2、在main.js引入

import

*as axios from

'./axios/'

vue.prototype.$axios = axios

3、新建axios檔案統一設定axios配置(下面是簡單使用,更多配置檢視下面內容)

//axios檔案

import axios from

'axios'

const base =

'/api'

//介面申明

//post請求

const

getsms

= params =>

//get請求

const

getsms2

= params =>)}

//介面匯出

export

4、元件使用:

//這裡在main.js檔案統一引入了介面,所以可以使用this.$axios直接呼叫

let res =

await

this

.$axios.

getsms

()

5、axios使用路由跳轉,主要是將this.$router轉化了

1、設定全域性的 axios 預設值

直接使用axios設定

axios.defaults.baseurl =

'';axios.defaults.headers.common[

'authorization']=

auth_token

;axios.defaults.headers.post[

'content-type'

]2. 或者建立例項,設定例項預設值

const service = axios.

create

()

2、介面返回即響應

某個請求的響應包含以下資訊

,// `status` 來自伺服器響應的 http 狀態碼

status:

200,

// `statustext` 來自伺服器響應的 http 狀態資訊

statustext:

'ok'

,// `headers` 伺服器響應的頭

headers:

,// `config` 是為請求提供的配置資訊

config:

}

3、axios***使用

// 新增請求***,對請求資訊做統一處理

service.interceptors.request.

use(

config =>

,error =>

)// 新增響應***,對介面的返回資料做統一的處理

service.interceptors.response.

use(res =>

else

if(res.data.code ===

22001

)// 根據介面code做不同處理

switch

(res.data.code)

return res

}, error =>

)

只有url屬性是必須的其他都是非必須,預設是get],

// `transformresponse` 在傳遞給 then/catch 前,允許修改響應資料

transformresponse:

[function

(data)],

// `headers` 是即將被傳送的自定義請求頭,同樣可統一定義

headers:

,// `params` 是即將與請求一起傳送的 url 引數

// 必須是乙個無格式物件(plain object)或 urlsearchparams 物件

params:

,// `paramsserializer` 是乙個負責 `params` 序列化的函式

// (e.g.

paramsserializer:

function

(params))}

,// `data` 是作為請求主體被傳送的資料

// 只適用於這些請求方法 'put', 'post', 和 'patch'

// 在沒有設定 `transformrequest` 時,必須是以下型別之一:

// - string, plain object, arraybuffer, arraybufferview, urlsearchparams

// - 瀏覽器專屬:formdata, file, blob

// - node 專屬: stream

data:

,// `timeout` 指定請求超時的毫秒數(0 表示無超時時間)

// 如果請求話費了超過 `timeout` 的時間,請求將被中斷

timeout:

1000

,// `withcredentials` 表示跨域請求時是否需要使用憑證

withcredentials:

false

,// 預設的

// `adapter` 允許自定義處理請求,以使測試更輕鬆

// 返回乙個 promise 並應用乙個有效的響應 (查閱 [response docs](#response-api)).

adapter:

function

(config)

,// `auth` 表示應該使用 http 基礎驗證,並提供憑據

// 這將設定乙個 `authorization` 頭,覆寫掉現有的任意使用 `headers` 設定的自定義 `authorization`頭

auth:

,// `responsetype` 表示伺服器響應的資料型別,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'

responsetype:

'json'

,// 預設的

// `xsrfcookiename` 是用作 xsrf token 的值的cookie的名稱

xsrfcookiename:

'xsrf-token'

,// default

// `xsrfheadername` 是承載 xsrf token 的值的 http 頭的名稱

xsrfheadername:

'x-xsrf-token'

,// 預設的

// `onuploadprogress` 允許為上傳處理進度事件

onuploadprogress:

function

(progressevent)

, ondownloadprogress:

function

(progressevent)

,// `maxcontentlength` 定義允許的響應內容的最大尺寸

maxcontentlength:

2000

,// `validatestatus` 定義對於給定的http 響應狀態碼是 resolve 或 reject promise 。如果 `validatestatus` 返回 `true` (或者設定為 `null` 或 `undefined`),promise 將被 resolve; 否則,promise 將被 rejecte

validatestatus:

function

(status)

,// `maxredirects` 定義在 node.js 中 follow 的最大重定向數目

// 如果設定為0,將不會 follow 任何重定向

maxredirects:5,

// 預設的

// `httpagent` 和 `httpsagent` 分別在 node.js 中用於定義在執行 http 和 https 時使用的自定義**。允許像這樣配置選項:

// `keepalive` 預設沒有啟用

,// 'proxy' 定義**伺服器的主機名稱和埠

// `auth` 表示 http 基礎驗證應當用於連線**,並提供憑據

// 這將會設定乙個 `proxy-authorization` 頭,覆寫掉已有的通過使用 `header` 設定的自定義 `proxy-authorization` 頭。

proxy:},

// `canceltoken` 指定用於取消請求的 cancel token

canceltoken:

newcanceltoken

(function

(cancel)

)}

vue專案及axios請求獲取資料

一般vue專案中 乙個頁面是由多個元件組成的,各個組建的資料都是統一在主介面的元件中傳送axios請求獲取,這樣極大地提高了效能。import homeheader from components header import homeswiper from components swiper imp...

vue專案封裝axios

還是直奔主題吧,因為官方不推薦使用vue resource,而是推薦axios,所以這篇文章分享給大家我在自己的專案裡如何封裝axios,雖說將axios在main.js裡寫入vue的原型鏈作為vue的屬性 vue.prototype.http axios 直接用最原始的方法也能進行請求 這樣也不是...

vue專案使用axios請求後端資料

在專案中使用到的向後端請求和提交資料的方式,axios請求 在使用axios時,需要先安裝axios npm install axios安裝完成後在main.js中引入 import axios from axios 為了使用方便在定義為全域性方法 vue.prototype.http axios完...