今天小編給大家分享一下Vue怎么封裝axios的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
中牟網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
安裝axios
起手安裝axios
npm install axios
request.js
該文件中對axios進(jìn)行封裝
import axios from 'axios'
const baseURL = 'http://localhost:4000/api'
// 創(chuàng)建 axios 實例
const service = axios.create({
baseURL: baseURL, // 請求地址前綴,將自動加在 url 前面
timeout: 6000 // 請求超時時間
})
// axios請求攔截器
service.interceptors.request.use(config => {
if (localStorage.getItem('loginToken')) {
// 請求統(tǒng)一設(shè)置header
config.headers.Authorization = localStorage.getItem('loginToken')
}
return config
}, error => {
return Promise.reject(error)
})
// axios響應(yīng)攔截器
service.interceptors.response.use(response => {
return response.data
}, error => {
// console.log('看一看', error.response)
const { status } = error.response
if (status === 401) { // token失效
Message.error('token失效,請重新登錄')
// 清除token
localStorage.removeItem('loginToken')
router.push('/')
}
return Promise.reject(error)
})
export { service as axios }
在axios.create操作中還可以進(jìn)行其他的一些操作,諸如:
根據(jù)當(dāng)前環(huán)境切換不同的url(生產(chǎn)環(huán)境/開發(fā)環(huán)境/測試環(huán)境)
baseURL: process.env.NODE_ENV === 'production' ? 'productApi': 'developApi'
1
統(tǒng)一請求頭配置
headers: {
get: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
// 在開發(fā)中,一般還需要單點登錄或者其他功能的通用請求頭,可以一并配置進(jìn)來
},
post: {
'Content-Type': 'application/json;charset=utf-8'
// 在開發(fā)中,一般還需要單點登錄或者其他功能的通用請求頭,可以一并配置進(jìn)來
}
},
跨域、響應(yīng)碼處理
提供是否允許跨域的屬性——withCredentials: true/false
請求響應(yīng)序列化
// 在向服務(wù)器發(fā)送請求前,序列化請求數(shù)據(jù)
transformRequest: [function (data) {
data = JSON.stringify(data)
return data
}],
// 在傳遞給 then/catch 前,修改響應(yīng)數(shù)據(jù)
transformResponse: [function (data) {
if (typeof data === 'string' && data.startsWith('{')) {
data = JSON.parse(data)
}
return data
}]
同樣,攔截器中也可以自定義更多的內(nèi)容
api.js
import { axios } from './request'
const api = {
user: '/user/getUsers'
}
export default api
export function getUsersApi(param) {
return axios({
url: api.user,
method: 'post',
data: param
})
}
以上就是“Vue怎么封裝axios”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:Vue怎么封裝axios
轉(zhuǎn)載來于:http://m.newbst.com/article42/gcshhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、虛擬主機(jī)、網(wǎng)站制作、域名注冊、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)