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,38 +81,43 @@ var _timeSyncing = false
function syncServerTime() { function syncServerTime() {
return new Promise(function (resolve) { return new Promise(function (resolve) {
if (_timeSyncing) { if (_timeSyncing) {
// 已有同步请求在进行中,重试 500ms 后获取
setTimeout(function () { resolve(getServerDate()) }, 500) setTimeout(function () { resolve(getServerDate()) }, 500)
return return
} }
_timeSyncing = true _timeSyncing = true
var url = CFG.protocol + '://' + CFG.endpoint + '/' var url = CFG.protocol + '://' + CFG.endpoint + '/'
var XHRClass = getXHR() console.log('【MinIO】同步服务器时间:', url)
if (XHRClass) { uni.request({
var xhr = new XHRClass() url: url,
xhr.open('GET', url, true) method: 'GET',
xhr.onload = function () { success: function (res) {
var serverDateStr = xhr.getResponseHeader('Date') 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) { if (serverDateStr) {
var serverMs = new Date(serverDateStr).getTime() var serverMs = new Date(serverDateStr).getTime()
if (serverMs) { if (serverMs) {
_timeOffset = serverMs - Date.now() _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 _timeSyncing = false
resolve(getServerDate()) resolve(getServerDate())
} },
xhr.onerror = function () { fail: function (err) {
_timeSyncing = false console.warn('【MinIO】时间同步请求失败:', JSON.stringify(err))
resolve(new Date())
}
xhr.send()
} else {
_timeSyncing = false _timeSyncing = false
resolve(new Date()) resolve(new Date())
} }
}) })
})
} }
/** /**