iot-ui-app/network/request.js

183 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import store from '@/store/index.js'
import {url,wsUrl,htoProtocol} from './config.js'
const customRequest = (opts, data) => {
let configList = uni.getStorageSync('configList');
let configIndex = uni.getStorageSync('configIndex');
if(!configList || configIndex==-1){
uni.showToast({
title: '请求域名为空,请先添加',
icon: 'none',
duration: 1500
})
setTimeout(()=>{
uni.navigateTo({
url:'/pages/tabbar/config'
})
},1500)
return null;
}else{
let basicDefaultOpts = {
url: configList[configIndex].protocol + configList[configIndex].address + opts.url,
data: data,
method: opts.method,
header: opts.header,
}
let promise = new Promise(function(resolve, reject) {
uni.request(basicDefaultOpts).then((res) => {
console.log("res",res);
resolve(res[1].data)
if(Object.prototype.toString.call(res[1].data) !== '[object Object]'){
uni.showToast({
title: '请求错误,请检查域名是否错误',
icon: 'none',
duration: 1500
})
}
}).catch(
(response) => {
console.log("response",JSON.stringify(response));
reject(response)
}
)
})
// console.log(JSON.stringify(promise));
return promise
}
};
const basicRequest = (opts, data) => {
let basicDefaultOpts = {
url: url + opts.url,
data: data,
method: opts.method,
header: opts.header,
}
let promise = new Promise(function(resolve, reject) {
uni.request(basicDefaultOpts).then((res) => {
// console.log(JSON.stringify(res));
resolve(res[1].data)
}).catch(
(response) => {
reject(response)
}
)
})
// console.log(JSON.stringify(promise));
return promise
};
//带Token请求
const TokenRequest = (opts, data) => {
let tokenKey = uni.getStorageSync('token');
let configList = uni.getStorageSync('configList');
let configIndex = uni.getStorageSync('configIndex');
if(!configList || configIndex==-1){
uni.showToast({
title: '请求域名为空,请先添加',
icon: 'none',
duration: 1500
})
setTimeout(()=>{
uni.navigateTo({
url:'/pages/tabbar/config'
})
},1500)
return null;
}else{
// tokenKey = store.getters.tokenKey;
//此token是登录成功后后台返回保存在storage中的
let DefaultOpts = {
url: configList[configIndex].protocol + configList[configIndex].address + opts.url,
data: data,
method: opts.method,
header: {
'x-access-token': tokenKey,
},
}
let promise = new Promise(function(resolve, reject) {
uni.request(DefaultOpts).then(
(res) => {
// console.log("请求返回",res)
// 令牌过期关闭所有页面跳转登录页
if(res[1].data.status==401){
uni.showToast({
title: '登录已过期,请重新登录',
icon: 'none',
duration: 1500
})
store.commit('setTokenKey', '');
uni.removeStorageSync('token');
setTimeout(()=>{
uni.reLaunch({url:'/pages/tabbar/login'});
},1500)
}else if(res[1].data.status!=200){
uni.showToast({
title: res[1].data.message,
icon: 'none',
duration: 1500
})
}
resolve(res[1].data)
}
).catch(
(response) => {
console.log("请求报错",response)
uni.showToast({
title: '服务器开小差了呢,请您稍后再试',
icon: 'none',
duration: 1500
})
reject(response)
}
)
})
// console.log(JSON.stringify(promise));
return promise
}
}
//自带url请求不使用公共域名的Token请求
const TokenURlRequest = (opts, data) => {
let tokenKey = uni.getStorageSync('token');
// tokenKey = store.getters.tokenKey;
//此token是登录成功后后台返回保存在storage中的
let DefaultOpts = {
url: opts.url,
data: data,
method: opts.method,
header: {
'Authorization': 'Bearer '+tokenKey,
},
}
let promise = new Promise(function(resolve, reject) {
uni.request(DefaultOpts).then(
(res) => {
// 令牌过期关闭所有页面跳转登录页
if(res[1].data.error=="invalid_token"){
uni.reLaunch({url:'/pages/index/login'});
}
resolve(res[1].data)
}
).catch(
(response) => {
reject(response)
}
)
})
// console.log(JSON.stringify(promise));
return promise
}
// 将对象导出外部引入使用
export default{
// baseUrl,
customRequest,
basicRequest,
TokenRequest,
TokenURlRequest
}