Files
MemRelay/projects/d1932ed6-07d3-4463-a224-8534ffd69a07/“ONLYOFFICE 无法连接”实为浏览器陈旧状态,同源 -ds-vpath- 经 headless 验证正常.md
T

2.3 KiB
Raw Blame History

title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
title type permalink stable_id scope memory_type project_id usage_profile_id status revision request_id created_at updated_at tags
“ONLYOFFICE 无法连接”实为浏览器陈旧状态,同源 /ds-vpath/ 经 headless 验证正常 experience main/projects/d1932ed6-07d3-4463-a224-8534ffd69a07/onlyoffice-无法连接-实为浏览器陈旧状态同源-ds-vpath-经-headless-验证正常 b476b307-7224-4128-8499-4c43a2ad1cb5 project experience d1932ed6-07d3-4463-a224-8534ffd69a07 7aee455b-24cc-4008-bdaf-443721e6f939 active 1 nextoffice-20260903-dsvpath-browsercache-diagnosis 2026-09-03T03:48:33.710359+00:00 2026-09-03T03:48:33.710359+00:00
nextoffice
onlyoffice
ds-vpath
browser-cache
cdp
diagnosis

现象:本机实例(127.0.0.1:45678,升级到 /ds-vpath/ 同源代理后)在用户 Edge 里打开 xlsx 提示“ONLYOFFICE 服务器无法连接,请联系系统管理员”。

排查:服务端全部正常——OCS api/v1/config 返回 documentServerUrl=/ds-vpath/(非空、error=null);编辑器 iframe 页 CSP 含 script-src-elem 'strict-dynamic' 'nonce-XXX',且 onlyoffice-editor.mjs 带匹配 nonce(type=module);/ds-vpath/web-apps/apps/api/documents/api.js 返回 200 且含 DocsAPI;连接器自检 successfully connected;WS 101、polling 0{"sid"}。但 Nextcloud 访问日志显示真实浏览器(Edg/152)拿到 config 后从不请求 api.js。

定性方法(关键):用本机 Chrome + node v24 CDP 写临时脚本(已删),全新 --user-data-dir + --headless=new 无缓存会话,Network.setExtraHTTPHeaders 注入 Basic 认证,导航到 /index.php/apps/onlyoffice/?inframe=true。结果:编辑器完整加载(api.js、index.html、require.js、sdk-all-min.js、socket.io、Editor.bin 全 200),零 CSP 违规、零 loadingFailed,仅一条自恢复的 CSRF token mismatch 警告。

结论:/ds-vpath/ 同源方案本身正确、IP 无关,无需改代码。用户故障是浏览器陈旧状态(旧 :8081 绝对地址配置时的缓存 JS / Service Worker / 过期 requesttoken,CSRF mismatch 即其痕迹)。解法:对该站点硬刷新 / 清除站点数据 / 注销 Service Worker / 无缓存窗口。可安心部署到线。经验:排查此类“前端报无法连接但服务端正常”问题,用 Chrome CDP + 干净 profile 复现比猜测 CSP 更高效。