fix:syncServerTime改用uni.request确保Date响应头可读

This commit is contained in:
97694732@qq.com 2026-06-05 11:19:42 +08:00
parent bfb4305d01
commit a4afc95abf

View File

@ -81,37 +81,42 @@ var _timeSyncing = false
function syncServerTime() {
return new Promise(function (resolve) {
if (_timeSyncing) {
// 已有同步请求在进行中,重试 500ms 后获取
setTimeout(function () { resolve(getServerDate()) }, 500)
return
}
_timeSyncing = true
var url = CFG.protocol + '://' + CFG.endpoint + '/'
var XHRClass = getXHR()
if (XHRClass) {
var xhr = new XHRClass()
xhr.open('GET', url, true)
xhr.onload = function () {
var serverDateStr = xhr.getResponseHeader('Date')
console.log('【MinIO】同步服务器时间:', url)
uni.request({
url: url,
method: 'GET',
success: function (res) {
var serverDateStr = null
// 尝试从多个地方取 Date 头
if (res.header) {
serverDateStr = res.header.Date || res.header.date || res.header['Date']
}
if (res.headers) {
serverDateStr = serverDateStr || res.headers.Date || res.headers.date || res.headers['Date']
}
if (serverDateStr) {
var serverMs = new Date(serverDateStr).getTime()
if (serverMs) {
_timeOffset = serverMs - Date.now()
console.log('【MinIO】时间同步完成服务器偏移:', _timeOffset, 'ms')
console.log('【MinIO】时间同步完成服务器偏移:', _timeOffset, 'ms, 服务器时间:', serverDateStr)
}
} else {
console.warn('【MinIO】未获取到Date响应头, header:', JSON.stringify(res.header || res.headers))
}
_timeSyncing = false
resolve(getServerDate())
}
xhr.onerror = function () {
},
fail: function (err) {
console.warn('【MinIO】时间同步请求失败:', JSON.stringify(err))
_timeSyncing = false
resolve(new Date())
}
xhr.send()
} else {
_timeSyncing = false
resolve(new Date())
}
})
})
}