Lotus Notes / Domino-如何在Angular应用中获取“内容范围”

问题描述 投票:0回答:3

我已经创建了一个Angular应用程序,并且我正在使用HttpClient从IBM / Notes Domino服务器获取数据。我正在使用Domino数据服务来访问具有/{database}/api/data/collections/name/{viewname}这样的URL的数据库中的数据。数据从服务器返回的很好,我可以使用Chrome DevTools的“网络”标签看到此信息。

在服务器的响应中,我可以看到Content-Range标头,但是在我的Angular应用中,我无法访问它!

在Angular应用中,我正在使用它来观察服务器的响应

this.httpClient.get<any>('/{database}/api/data/collections/name/{viewname}', {observe: 'response'})
    .subscribe(
        resp => {
        console.log(resp);
        }
    );

在控制台中,可以看到这些标题:headers: Map(3) {"content-type" => Array(1), "cache-control" => Array(1), "content-length" => Array(1)}

我在[Domino网站规则]的自定义标头中添加了Access-Control-Allow-Headers,其值为Content-Range

有人知道我该如何到达Angular中的Content-Range标头?

angular lotus-notes lotus-domino
3个回答
2
投票

所以在其他人的帮助下我有了答案!

为了帮助他人,这里是您要使其在Domino Server上运行所需的解决方案。

在Domino Director中,转到Web-> Internet站点。在网站规则文档规则(标题):中的Custom headers字段中输入以下内容:

enter image description here然后,在服务器的Notes.ini文件中,您需要以下行:

HTTPAdditionalRespHeader=HTTPAdditionalRespHeader=Access-Control-Allow-Credentials:true

重新启动Domino服务器,然后就可以正常使用了!!


1
投票

看起来您尚未将Content-range添加到服务器端公开的标头中。

也许您可以尝试以下操作:[EnableCors("http://localhost:3000", "", "", exposedHeaders: "Content-Range")]


1
投票

您需要设置后端以返回HTTP标头http://localhost:3000,其值为Access-Control-Expose-Headers。即,完整:Content-Range

然后在Angular中,您可以通过执行Access-Control-Expose-Headers: Content-Range来检索标头:

例如

.headers.get()
© www.soinside.com 2019 - 2024. All rights reserved.