29 lines
2.3 KiB
Markdown
29 lines
2.3 KiB
Markdown
---
|
||
title: “ONLYOFFICE 无法连接”实为浏览器陈旧状态,同源 /ds-vpath/ 经 headless 验证正常
|
||
type: experience
|
||
permalink: main/projects/d1932ed6-07d3-4463-a224-8534ffd69a07/onlyoffice-无法连接-实为浏览器陈旧状态同源-ds-vpath-经-headless-验证正常
|
||
stable_id: b476b307-7224-4128-8499-4c43a2ad1cb5
|
||
scope: project
|
||
project_id: d1932ed6-07d3-4463-a224-8534ffd69a07
|
||
memory_type: experience
|
||
status: active
|
||
revision: 1
|
||
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
||
created_at: '2026-09-23T15:05:39.113565+00:00'
|
||
updated_at: '2026-09-23T15:05:39.113629+00:00'
|
||
tags:
|
||
- 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/<id>?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 更高效。 |