欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue中axios封裝

林國瑞2年前7瀏覽0評論

Vue 中的 Ajax 庫是 axios,它是一個基于 Promise 的 HTTP 庫,可用于瀏覽器和 node.js 中。為了更好的使用方便,我們可以對 axios 進行封裝并在 Vue 項目中使用。這篇文章將會詳細介紹如何在 Vue 中對 axios 進行封裝。

首先,我們需要安裝 axios。通過 npm 安裝:

npm install axios --save

然后,在項目中創建一個叫做 api.js 的文件來封裝 axios。

import axios from 'axios'
// 創建 axios 實例
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
timeout: 5000 // 請求超時時間
})
// request 攔截器
service.interceptors.request.use(
config =>{
// 在請求發送之前可以在這里添加一些操作,例如添加 token 等
return config
},
error =>{
// 請求錯誤的操作
return Promise.reject(error)
}
)
// response 攔截器
service.interceptors.response.use(
response =>{
// code:200 業務處理正常,返回數據
// code:401 token過期/未登錄
// code:502 后端服務異常
const res = response.data
if (res.code !== 200) {
// 如果接口返回的狀態碼不是200,則拋出異常
return Promise.reject(res.message || 'Error')
} else {
return res
}
},
error =>{
// 對響應錯誤進行操作
return Promise.reject(error)
}
)
export default service

axios 實例的方法可以查看 axios 官方文檔。其中,baseURL 和 timeout 是在 axios 創建實例時進行設置的。request 攔截器用于在請求發送之前添加一些操作,例如 token 添加等。response 攔截器用于對響應的錯誤進行統一處理,例如處理響應錯誤狀態碼。

之后,在 Vue 項目中使用:

import request from '@/utils/api.js'
request({
url: '/user/info',
method: 'get'
}).then(response =>{
console.log(response)
}).catch(error =>{
console.log(error)
})

以上代碼中,我們引入了在 api.js 中封裝好的 axios 實例,通過調用該實例方法來發起請求。

最后,需要注意的是,在使用 axios 時需要注意跨域問題。在開發環境下需要配置 webpack 代理配置,生產環境下可以在服務器端配置。