trs-ui-app
Version:
TRS 可视化低代码平台 前端移动 UI 组件库 👍
45 lines (43 loc) • 1.34 kB
JavaScript
var api = async (url = '', data = {}, type = 'GET', headers = {}, log = () => { }) => {
const baseUrl = '';
type = type.toUpperCase();
url = baseUrl + url;
if (type === 'GET') {
let dataStr = '';
Object.keys(data).forEach(key => {
dataStr += `${key}=${data[key]}&`;
});
if (dataStr !== '') {
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
url = `${url}?${dataStr}`;
}
}
const requestConfig = {
credentials: 'same-origin',
method: type,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'req-from': 'LowCode',
...headers,
},
mode: 'cors',
cache: 'no-cache',
};
if (type === 'POST') {
Object.defineProperty(requestConfig, 'body', {
value: JSON.stringify(data),
});
}
try {
log(url, requestConfig);
const response = await fetch(url, requestConfig);
const responseJson = await response.json();
return responseJson;
}
catch (error) {
log(`${url}-requestError`, JSON.stringify(error));
throw new Error(`error: ${JSON.stringify(error)}`);
}
};
export { api as default };