import { baseUrl } from './env' export default async(url = '', data = {}, type = 'GET', method = 'fetch') => { 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 } } if (fetch && method === 'fetch') { let token=''; if(process.client) { let tokenStr = localStorage.getItem("userInfo"); if(tokenStr){ tokenStr = JSON.parse(tokenStr); if(tokenStr && tokenStr.xaccessToken) token=tokenStr.xaccessToken; } } let requestConfig = { method: type, headers: { // 'Accept': 'text/plain', 'Content-Type': 'application/json', 'x-access-token': token }, mode: 'cors', // channelId:'H5@2021', cache: 'force-cache' } if (type === 'POST') { Object.defineProperty(requestConfig, 'body', { value: JSON.stringify(data) }) } try { const response = await fetch(url, requestConfig) const responseJson = await response.json() return responseJson } catch (error) { throw new Error(error) } } else { return new Promise((resolve, reject) => { let requestObj if (window.XMLHttpRequest) { requestObj = new XMLHttpRequest() } let sendData = '' if (type === 'POST') { sendData = JSON.stringify(data) } requestObj.open(type, url, true) requestObj.setRequestHeader('Content-Type', 'application/json') requestObj.send(sendData) requestObj.onreadystatechange = () => { if (requestObj.readyState === 4) { if (requestObj.status === 200) { let obj = requestObj.response if (typeof obj !== 'object') { obj = JSON.parse(obj) } resolve(obj) } else { reject(requestObj) } } } }) } }