不允许数据库上下文

Database context not allowed

我们有一个包含 3 个服务器的集群,前面有负载均衡器 (CloudFlare)。当我们在集群中有 2 个服务器(A 和 B)时一切正常,但在我们添加第 3 个服务器(C)后我们注意到一些奇怪的事情。

其中一个很重要,我完全不明白它是怎么发生的。

我们的 Web 应用程序向自身发出 AJAX 请求,以便取回一些 JSON 数据,如果请求到达新服务器 (C),响应如下所示:

{
code: 404,
text: "Not Found",
message: "Database context not allowed."
}

我们的应用程序没有抛出这样的错误,所以我在 google 中搜索了一下,注意到它被提到了:OpenNTF XPagesExtensionLibrary

但是,我们根本不使用 XPage,所以我想知道我们的 AJAX 请求怎么会以某种方式涉及该逻辑。

如有任何建议和提示,我们将不胜感激。

更新

我代理的后端代码不重要(也可能是一个空代理,我检查过),因为请求没有到我的代理。

AJAX调用由jQuery

触发
let url = "domain.tld/api/key";
let params = {"a": 1};
$.post(url, params, function (data) {
  // some code
},
"json"
).always(function() {
  // some code
});

URL,我怀疑它是一个问题,它以 /api/key 开头,我相信这是一个问题(因为所有其他 ajax 端点不从 /[= 开始的调用42=]/工作得很好)。

谢谢。

我们在评论的帮助下(您可以在我的原文 post 下看到)。

显然有一个 DAS servlet 可以处理从 /api/* 开始的所有请求,如果加载了 XPages 引擎,它就会运行。 在我的例子中,3 台服务器中有 2 台关闭了 XPage,因此问题只发生在 1 台服务器上。

解决方案是:

  1. 关闭 XPages(或找到关闭 DAS 的方法)。
  2. 或者将 URL 从 /api/path 更改为其他内容(这就是我们要做的)。