【js】http请求封装
httpConfig.js + https.js + 公共方法
1.httpConfig.js
// 参数配置表 let ipDeault = 'https://xxxx.e24health.com'; // let urlAddress = '/xxxx/'; let urlAddress = '/xxxxEncrypt/'; //加密接口 let errorCodeArr = ["010400xx", "010400xx", "010400xx", "0104xxx5", "01040xxx7", "01040xxx", "01040xxx"] //固定错误提示数组 const httpConfig = { //默认的URLIp路径 ipDeault: ipDeault, //默认的URL地址路径 urlAddress: urlAddress, // AuthorizationToken值 authorizationToken: 'Basic xxxxx==', //固定错误提示数组 errorCodeArr: errorCodeArr, //Copyright Copyright: 'Copyright © 2018 - 2021 深圳市xxx医疗技术开发有限公司', //DownUrl 服务下载地址 DownUrl: 'xxx/setup.exe', } export { httpConfig }
2.https.js
// 请求封装
// urlDeault 默认地址
// urlADS 增删改地址
// urlS 查询地址
import {
message
} from 'antd';
import { httpConfig } from './httpConfig'
import { Keup, Util, Aes } from '../../tools/index'
// import store from '../store/'
// authorizationToken token
// ipDeault 默认的URLIp地址
// urlAddress 接口地址路径
// errorCodeArr 固定错误提示数组
const { authorizationToken, ipDeault, urlAddress, errorCodeArr } = httpConfig
export const $http = {
ipDeault: ipDeault,
UrlEncode: (obj) => {
if (!obj || Object.prototype.toString.call(obj) !== '[object Object]') {
return '';
}
let params = [];
for (let key in obj) {
params.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));
}
return params.join('&');
},
post: (type, Nothis, Objson) => {
let formData = Object.assign({}, Objson.data);
let url = $http.ipDeault;
let httpUrlAddress; //完整地址
let { userData } = window.sessionStorage
let { ipConfig } = window.sessionStorage
formData.code = Objson.code;
if (userData) {
let user = JSON.parse(userData)
let ip = JSON.parse(ipConfig)
formData.session = [{
"userID": user.userID || '',
"locID": user.locID || '',
"groupID": user.groupID || '',
"hospID": user.hospID || '',
"sessionID": user.sessionID || '',
'hospCode': user.hospCode || '',
"language": user.language || '',
"hostName": ip.hostName || '',
"ipv4": ip.ipv4 || '',
"ipv6": ip.ipv6 || '',
"mac": ip.mac || '',
}]
}
if (type !== 'urlDeault') {
//type === 'urlADS' ? url = window.sessionStorage.productIP : url = window.sessionStorage.queryIP
}
// 未配置ip地址 采用默认的ip地址
if (!url || url === '') {
url = $http.ipDeault;
}
httpUrlAddress = url + urlAddress
if(httpUrlAddress.indexOf("https://")>=0){
httpUrlAddress
}else{
if(httpUrlAddress.indexOf("http://")<0){
httpUrlAddress='http://' + httpUrlAddress
}
}
fetch(httpUrlAddress, {
method: 'post',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
"Authorization": authorizationToken,
"Access-Control-Allow-Origin": ipDeault
},
body: httpUrlAddress.includes('Encrypt') ? Aes.Encrypt(JSON.stringify(formData)) : JSON.stringify(formData)
}).then((res) => {
if (res.status !== 200) {
throw res.status
} else {
let Data;
// 是否是加密请求
httpUrlAddress.includes('Encrypt') ? Data = res.text() : Data = res.json()
return Data
}
}).then((Data) => {
let res
httpUrlAddress.includes('Encrypt') ? res = JSON.parse(Aes.Decrypt(Data)) : res = Data
res.errorCode = res.errorCode.toString(); //转成String类型
if (res.errorCode !== '0') {
if (errorCodeArr.includes(res.errorCode)) {
Keup.ModalMessage(3, Nothis, res.errorMessage, '跳转到登录页', '/login', "现在就去", 'error')
} else {
if (Util.isEmpty(res.errorFlag)) { //挂号建卡,单独处理error弹框
message.error(res.errorMessage);
}
}
}
Objson.success.call(Nothis, res)
}).catch((error) => {
if (Objson.error) {
Objson.error.call(Nothis, error)
}
});
},
get: (type, Nothis, Objson) => {
let Alldata = ''; // get后缀
let url = $http.ipDeault;
let httpUrlAddress; //完整地址
if (Objson.data) {
Objson.data.code = Objson.code;
Alldata = '?' + $http.UrlEncode(Objson.data);
}
if (type !== 'urlDeault') {
type === 'urlADS' ? url = window.sessionStorage.productIP : url = window.sessionStorage.queryIP
}
httpUrlAddress = url + urlAddress
fetch(`http://${httpUrlAddress}${Alldata}`, {
method: 'get',
mode: 'cors',
headers: {
"Authorization": authorizationToken,
},
}).then((res) => {
console.log(res)
// 如果http状态码正常,则直接返回数据
if (res.status !== 200) {
throw res.status
} else {
let Data;
switch (Objson.dataType) {
case 'json':
{
Data = res.json()
}
break;
case 'text':
{
Data = res.test()
}
break;
}
return Data
}
}).then((res) => {
res.errorCode = res.errorCode.toString(); //转成String类型
if (res.errorCode !== '0') {
message.error(res.errorMessage);
}
Objson.success.call(Nothis, res)
}).catch((error) => {
if (Objson.error) {
Objson.error.call(Nothis, error)
}
});
},
}

浙公网安备 33010602011771号