不允许数据库上下文
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 台服务器上。
解决方案是:
- 关闭 XPages(或找到关闭 DAS 的方法)。
- 或者将 URL 从 /api/path 更改为其他内容(这就是我们要做的)。
我们有一个包含 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 台服务器上。
解决方案是:
- 关闭 XPages(或找到关闭 DAS 的方法)。
- 或者将 URL 从 /api/path 更改为其他内容(这就是我们要做的)。