first commit
This commit is contained in:
38
src/renderer/http/index.js
Normal file
38
src/renderer/http/index.js
Normal file
@@ -0,0 +1,38 @@
|
||||
import { getBaseUrl } from './url.js'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
async function request(path, options = {}) {
|
||||
const { headers = {}, silent = false, ...rest } = options
|
||||
const url = `${getBaseUrl()}${path}`
|
||||
|
||||
const config = {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...headers,
|
||||
},
|
||||
...rest,
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await fetch(url, config)
|
||||
|
||||
if (!res.ok) {
|
||||
const msg = await res.text().catch(() => '')
|
||||
const errMsg = `请求失败: ${res.status}${msg ? ' - ' + msg : ''}`
|
||||
if (!silent) ElMessage.error(errMsg)
|
||||
return Promise.reject(new Error(errMsg))
|
||||
}
|
||||
|
||||
// 空响应
|
||||
const text = await res.text()
|
||||
if (!text) return Promise.resolve(null)
|
||||
|
||||
const data = JSON.parse(text)
|
||||
return Promise.resolve(data)
|
||||
} catch (err) {
|
||||
if (!silent) ElMessage.error(err.message || '网络连接失败')
|
||||
return Promise.reject(err)
|
||||
}
|
||||
}
|
||||
|
||||
export default request
|
||||
Reference in New Issue
Block a user