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)文章
淺談讓你的代碼更簡(jiǎn)短,更整潔,更易讀的ES6小技巧
這篇文章主要介紹了淺談讓你的代碼更簡(jiǎn)短,更整潔,更易讀的ES6小技巧,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10微信小程序使用progress組件實(shí)現(xiàn)顯示進(jìn)度功能【附源碼下載】
這篇文章主要介紹了微信小程序使用progress組件實(shí)現(xiàn)顯示進(jìn)度功能,涉及progress組件相關(guān)屬性設(shè)置操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12JS實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分的效果代碼分享
本文給大家基于js實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分效果,在項(xiàng)目開(kāi)發(fā)中經(jīng)??梢杂玫降?,大家可以更加需要適當(dāng)?shù)奶砑有薷?,?duì)js評(píng)分效果感興趣的朋友一起看看吧2016-09-09微信小程序:報(bào)錯(cuò)(in promise) MiniProgramError
這篇文章主要介紹了微信小程序:報(bào)錯(cuò)(in promise) MiniProgramError,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10JS實(shí)現(xiàn)的字符串?dāng)?shù)組去重功能小結(jié)
這篇文章主要介紹了JS實(shí)現(xiàn)的字符串?dāng)?shù)組去重功能,結(jié)合實(shí)例形式分析了javascript基于ES6、ES5、ES3及正則實(shí)現(xiàn)數(shù)組去重的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06js 父窗口控制子窗口的行為-打開(kāi),關(guān)閉,重定位,回復(fù)
技術(shù)要點(diǎn)可以利用windows的open和closed來(lái)對(duì)子窗口的控制,需要父窗口和子窗口之間進(jìn)行互動(dòng)。2010-04-04老生常談js動(dòng)態(tài)添加事件--- 事件委托
下面小編就為大家?guī)?lái)一篇老生常談js動(dòng)態(tài)添加事件--- 事件委托。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07