import { Message} from 'element-ui' //引入element彈窗組建
import loginInfo from '../store/loginInfo.js'
import router from '../router'//引入路由
var root = 'http://39.104.88.39/' // 配置API接口地址
var axios = require('axios') // 引用axios
// 自定義判斷元素類型JS
function toType(obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}
// 參數過濾函數
function filterNull(o) {
for (var key in o) {
if (o[key] === null || o[key] === '' ) {
delete o[key]
}
if (toType(o[key]) === 'string') {
o[key] = o[key].trim()
} else if (toType(o[key]) === 'object') {
o[key] = filterNull(o[key])
} else if (toType(o[key]) === 'array') {
o[key] = filterNull(o[key])
}
}
return o
}
// 封裝axios
function apiAxios(method, url, params, success, failure) {
if (params) {
params = filterNull(params)
}
axios({
method: method,
url: url,
data: method === 'POST' || method === 'PUT' ? params : null,
params: method === 'GET' || method === 'DELETE' ? params : null,
baseURL: root,
withCredentials: true //開啟cookies
})
.then(function (res) {
if (res.data.status === 1000 || res.data.status === 1005 || res.data.status === 1010) {
if (success) {
if (Array.isArray(res.data.data) && res.data.data.length === 0) {//后臺數據不規(guī)范该互,所以加了這個
res.data.data.list = []
}
success(res.data)
}
} else {
if (failure) {
Message.error(res.data.msg)
failure(res.data)
} else if (res.data.status === 1016) {
Message.error('登錄失效桐臊,請重新登錄绰更!')
loginInfo.setIslogin(false)
router.push('/login')
} else {
Message.error(res.data.msg)
}
}
})
.catch(function (err) {
if (err) {
err = String(err)
if (err.includes('Network Error')) {
Message.error('請檢查網絡诚隙,網絡端出錯了哦')
} else if (err.includes('TypeError: Cannot read property')) {
return false
} else {
Message.error('服務端出錯了哦')
}
}
})
}
// 返回在vue模板中的調用接口
export default {
get: function (url, params, success, failure) {
return apiAxios('GET', url, params, success, failure)
},
post: function (url, params, success, failure) {
return apiAxios('POST', url, params, success, failure)
},
put: function (url, params, success, failure) {
return apiAxios('PUT', url, params, success, failure)
},
delete: function (url, params, success, failure) {
return apiAxios('DELETE', url, params, success, failure)
},
root: root
}
封裝axios請求
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門损趋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椅寺,你說我怎么就攤上這事浑槽。” “怎么了返帕?”我有些...
- 正文 為了忘掉前任链韭,我火速辦了婚禮偏竟,結果婚禮上,老公的妹妹穿的比我還像新娘敞峭。我一直安慰自己踊谋,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布旋讹。 她就那樣靜靜地躺著殖蚕,像睡著了一般轿衔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睦疫,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼刻坊!你這毒婦竟也來了枷恕?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布凡傅,位于F島的核電站,受9級特大地震影響肠缔,放射性物質發(fā)生泄漏夏跷。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一明未、第九天 我趴在偏房一處隱蔽的房頂上張望槽华。 院中可真熱鬧,春花似錦趟妥、人聲如沸猫态。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽懂鸵。三九已至,卻和暖如春行疏,著一層夾襖步出監(jiān)牢的瞬間匆光,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 我們從封裝axios請求中來講解攔截器 首先引入axiosimport axios from 'axios' 創(chuàng)建...