fix(extension): 同步失败时真实原因被吞成「失败: undefined」
background 的「未配置站点」分支只返回 {ok:false, reason:'not configured'},
而 options.js 只读 result.error || result.status —— 两个字段都没有,
于是模板插值出 undefined,用户看到「失败: undefined」,真实原因看不到。
实测服务端日志里没有任何 /api/history/sync 请求,确认请求根本没发出。
修:两版 options.js 改为 error || reason || status || '未知错误',
两版 background.js 的 reason 换成中文可操作提示
「未配置站点地址,请先填写并保存」。
firefox 版本升到 1.1.4(已签名的 1.1.3 内容已冻结,须重签)。
This commit is contained in:
@ -246,7 +246,7 @@ async function syncNow() {
|
||||
);
|
||||
});
|
||||
const { serverUrl, syncToken, deviceName } = stored;
|
||||
if (!serverUrl) return { ok: false, reason: 'not configured' };
|
||||
if (!serverUrl) return { ok: false, reason: '未配置站点地址,请先填写并保存' };
|
||||
|
||||
// 每次从持久化存储恢复游标和失败队列,兼容 MV3 service worker 休眠重启。
|
||||
pendingItems = Array.isArray(stored.pending) ? stored.pending : [];
|
||||
|
||||
@ -33,6 +33,8 @@ document.getElementById('sync').addEventListener('click', () => {
|
||||
? '无待同步'
|
||||
: result.ok
|
||||
? `同步 ${result.count} 条,共 ${result.total}`
|
||||
: `失败: ${result.error || result.status}`;
|
||||
// 后台各条失败路径给的字段不一致(reason / error / status),
|
||||
// 只读 error 和 status 会让「未配置站点」显示成「失败: undefined」。
|
||||
: `失败: ${result.error || result.reason || result.status || '未知错误'}`;
|
||||
});
|
||||
});
|
||||
|
||||
1
extension/firefox/.amo-upload-uuid
Normal file
1
extension/firefox/.amo-upload-uuid
Normal file
@ -0,0 +1 @@
|
||||
{"uploadUuid":"fb05e275eefe472399d38c15fb248870","channel":"unlisted","xpiCrcHash":"e49706a0c09801097e98c94bb18b76353480053afc23f75e3590920384d8faee"}
|
||||
@ -164,7 +164,7 @@ async function syncNow() {
|
||||
);
|
||||
});
|
||||
const { serverUrl, syncToken, deviceName } = stored;
|
||||
if (!serverUrl) return { ok: false, reason: 'not configured' };
|
||||
if (!serverUrl) return { ok: false, reason: '未配置站点地址,请先填写并保存' };
|
||||
|
||||
pendingItems = Array.isArray(stored.pending) ? stored.pending : [];
|
||||
lastSyncTime = Number(stored.lastSyncTime) || 0;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "JianF Nav Sync",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4",
|
||||
"description": "同步浏览历史到自建导航门户,按访问频次自动排序显示常用服务",
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
|
||||
@ -33,6 +33,9 @@ document.getElementById('sync').addEventListener('click', () => {
|
||||
? '无待同步'
|
||||
: result.ok
|
||||
? `同步 ${result.count} 条,共 ${result.total}`
|
||||
: `失败: ${result.error || result.status}`;
|
||||
// 后台各条失败路径给的字段不一致(reason / error / status),
|
||||
// 以前只读 error 和 status,于是「未配置站点」这种返回会显示成
|
||||
// 「失败: undefined」——真实原因被吞掉,只剩一个无意义的报错。
|
||||
: `失败: ${result.error || result.reason || result.status || '未知错误'}`;
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user