使用 GET 保存文件的 MarkLogic 查询控制台

MarkLogic Query Console using GET to save file

我目前正在调查我在使用 MarkLogic Query Console 时遇到的一个奇怪问题。当我编辑文件并单击保存按钮时,浏览器显示消息

Query Console lost connection to the server. Attempting to re-establish connection.

在服务器日志中我发现了这个错误:

Socket peer name error: getpeername <ip-addr>:8000: Transport endpoint is not connected

但这只有在我要保存的文件超过一定大小(约3.5 kB)时才会发生。 我怀疑我使用的(网络)基础设施中的某些东西可能导致了这个问题,所以我开始查看浏览器发送的请求。

我很惊讶地看到它使用 GET 请求来发送文件的内容,我本以为是 POST。实际上,当文件变大时,URL(以及发送的内容)在某个时候被截断,这可能是我的问题所在。

我的问题是:为什么要使用 GET 请求?有可能以某种方式将其更改为 POST 吗?我想这会解决我的问题。

顺便说一句,我目前使用的是 MarkLogic 9.0-7.2,不确定这是否相关。

出于安全原因和避免 URL 的最大长度,应通过 POST 完成保存操作。

此问题已得到解决,并将在较新版本的 MarkLogic 中执行 POST。

我刚刚验证了在 10.0-5.2 中通过查询控制台编辑保存文档时,文档内容是通过 POST 发送的,并成功保存了一个 8MB 的文件。

您应该升级到最新版本的 MarkLogic。