uniapp中uni.request(OBJECT)接口請(qǐng)求封裝實(shí)例代碼
封裝request.js
import { baseURL} from './common.js' //接口域名引入
// 攔截
let requestStart = function(params) {
// 如果需要在接口參數(shù)中加入token,使用下邊這段代碼
let access_token = uni.getStorageSync('access_token') || '';
if (params.__proto__.constructor.name == "Object") {
access_token && (params.access_token = access_token);
params = params;
} else if (params.__proto__.constructor.name == "FormData") {
access_token && (params.append("access_token", access_token));
}
// 如果需要顯示加載動(dòng)畫
// uni.showNavigationBarLoading(); // 在當(dāng)前頁(yè)面顯示導(dǎo)航條加載動(dòng)畫。
// uni.showLoading({
// title: '加載中',
// mask: true
// });
return params;
}
// 對(duì)于 GET 方法,會(huì)將數(shù)據(jù)轉(zhuǎn)換為 query string。例如 { name: 'name', age: 18 } 轉(zhuǎn)換后的結(jié)果是 name=name&age=18。
// 對(duì)于 POST 方法且 header['content-type'] 為 application/json 的數(shù)據(jù),會(huì)進(jìn)行 JSON 序列化。
// 對(duì)于 POST 方法且 header['content-type'] 為 application/x-www-form-urlencoded 的數(shù)據(jù),會(huì)將數(shù)據(jù)轉(zhuǎn)換為 query string。
export function get(url, params = {}) {
return new Promise((resolve, reject) => {
if (requestStart(params)) {
uni.request({
url: baseURL + url,
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
method: 'GET',
success: (res) => {
if (res.statusCode != 200)) {
uni.showToast({
title: res.statusCode +':'+ res.data.message,
mask: true,
icon: "none"
});
if(res.statusCode == 401){
setTimeout(() => {
uni.removeStorageSync('access_token');
uni.removeStorageSync('userinfo');
uni.navigateTo({
url: '/pages/login/login',
animationType: 'pop-in',
animationDuration: 300
})
}, 1500)
}
}else{
resolve(res.data);
if (res.data.code == 0) {
uni.showToast({
title: res.data.message,
mask: true,
icon: "none"
});
}
}
},
fail: (res) => {
reject(res)
},
});
}
});
}
export function post(url, params = {}) {
return new Promise((resolve, reject) => {
// 如果需要在header頭中加入token,使用這段代碼 header: header,
// if(uni.getStorageSync('access_token')){
// header.token = uni.getStorageSync('access_token')
// }
if (requestStart(params)) {
uni.request({
url: baseURL + url,
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
method: 'POST',
success: (res) => {
if (res.statusCode != 200)) {
uni.showToast({
title: res.statusCode +':'+ res.data.message,
mask: true,
icon: "none"
});
if(res.statusCode == 401){
setTimeout(() => {
uni.removeStorageSync('access_token');
uni.removeStorageSync('userinfo');
uni.navigateTo({
url: '/pages/login/login',
animationType: 'pop-in',
animationDuration: 300
})
}, 1500)
}
}else{
resolve(res.data);
if (res.data.code == 0) {
uni.showToast({
title: res.data.message,
mask: true,
icon: "none"
});
}
}
},
fail: (res) => {
reject(res)
},
});
}
});
}
var http = {
post,
get
};
export default http;main.js引入
import http from '@/utils/request.js'; //接口請(qǐng)求封裝
Object.assign(Vue.prototype, {
'$http': http,
})
在頁(yè)面中使用
onShow(){
this.$http.post("/api/",{
// id:1
}).then(res=>{
if(res.code == 200){
// 成功
}else{
// 失敗需要進(jìn)行的操作
}
})
},
總結(jié)
到此這篇關(guān)于uniapp中uni.request(OBJECT)接口請(qǐng)求封裝的文章就介紹到這了,更多相關(guān)uniapp uni.request(OBJECT)接口請(qǐng)求封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序如何修改radio和checkbox的默認(rèn)樣式和圖標(biāo)
這篇文章主要介紹了微信小程序修改radio和checkbox的默認(rèn)樣式和圖標(biāo),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
JS實(shí)現(xiàn)網(wǎng)頁(yè)上隨機(jī)產(chǎn)生超鏈接地址的方法
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)上隨機(jī)產(chǎn)生超鏈接地址的方法,涉及JavaScript隨機(jī)數(shù)的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
基于ts的動(dòng)態(tài)接口數(shù)據(jù)配置的詳解
這篇文章主要介紹了基于ts的動(dòng)態(tài)接口數(shù)據(jù)配置的詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
微信小程序封裝的HTTP請(qǐng)求示例【附升級(jí)版】
這篇文章主要介紹了微信小程序封裝的HTTP請(qǐng)求,結(jié)合實(shí)例形式分析了微信小程序封裝基于wx.request方法的http請(qǐng)求相關(guān)操作與使用技巧,并附帶升級(jí)版示例供大家參考,需要的朋友可以參考下2019-05-05
JavaScript知識(shí)點(diǎn)總結(jié)之如何提高性能
JavaScript的性能問題不容小覷,這就需要我們開發(fā)人員在編寫JavaScript程序時(shí)多注意一些細(xì)節(jié),本文非常詳細(xì)的介紹了一下JavaScript性能優(yōu)化方面的知識(shí)點(diǎn),絕對(duì)是干貨,需要的朋友快來(lái)一起學(xué)習(xí)吧2016-01-01
前端TypeScript時(shí)間格式化函數(shù)舉例詳解
這篇文章主要介紹了前端TypeScript時(shí)間格式化函數(shù)的相關(guān)資料,包括日期格式化formatDate、獲取周數(shù)getWeek、相對(duì)時(shí)間格式化formatPast、時(shí)間問候語(yǔ)formatAxis以及日期時(shí)間格式化parseTime和parseDate,每個(gè)方法都有詳細(xì)的參數(shù)說明和示例,需要的朋友可以參考下2025-02-02
Bootstrap基本樣式學(xué)習(xí)筆記之按鈕(4)
篇文章主要介紹了Bootstrap學(xué)習(xí)筆記之按鈕基本樣式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12

