mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-02 02:06:38 +08:00
89 lines
2.1 KiB
JavaScript
89 lines
2.1 KiB
JavaScript
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 (window.fetch && method === 'fetch') {
|
|
let token='';
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|