0

最近,我开始使用 Domino Access Services。到目前为止,一切正常:我可以使用我的 GET 和 POST 请求。但我注意到一个问题:当发布一个大字符串(我假设 100-200kb+)时,即使之前有其他东西放在那里,数据字段也会是空的。作为响应,我得到一个状态码 200。如果我将这个大字符串手动插入到数据字段中,它就会被保存。我可以毫无问题地使用 GET 请求访问它。数据字段来自“富文本”类型。

我的 POST 请求:(我也用 Postman 试过;它适用于小字符串)

var largeString = "any large string";
var data = JSON.stringify({
    "description": largeString
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
    console.log(this.responseText);         
                          }
                        });
var unid = "#{javascript:document1.getDocument().getUniversalID();}";
xhr.open("POST", "./api/data/documents/unid/" + unid);
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("x-http-method-override", "PATCH");
xhr.setRequestHeader("cache-control", "no-cache");              
xhr.send(data);

我想知道:POST 有大小限制吗?我会错过任何较大请求的标头吗?

4

2 回答 2

3

我认为您必须更改几个位置的最大值。

  • 在服务器的服务器文档中(在 names.nsf 中),您可以设置发送到服务器的请求内容的最大大小。默认值为 10,000 KB。将其设置为 0 以无限制。

    请参阅:右栏底部的服务器文档 > Internet 协议 > HTTP >。

在此处输入图像描述

  • 如果您正在使用 Internet 站点文档(您应该这样做),请更改“最大 POST 数据”字段。默认也是 10,000 KB。0 = 无限制。

    请参阅:Internet 站点 > Domino Web 引擎 > “POST 数据”部分。

在此处输入图像描述

  • 最后,在应用程序 (NSF) 的 XSP 属性中,还有一个文件上传的最大大小的设置。不确定您是否还需要更改该值,但它可能是相关的。

在此处输入图像描述

更改服务器文档中的设置将需要重新启动服务器。

于 2021-07-19T08:58:59.443 回答
1

根据您的示例,您将发送以下 JSON 有效负载:

{
  "description": "any large string"
}

这会写入一个文本字段——而不是富文本字段。Notes 和 Domino 中的文本字段的大小肯定是有限制的。

从技术上讲,您不能使用数据 API 编写 Notes Rich Text 字段,但可以编写 MIME 字段。尝试发送以下 JSON 有效负载:

{
  "description": {
    "type": "multipart",
    "content": [
      {
        "contentType": "text/plain",
        "data": "any large string"
      }
    ]
}

这将写入一个包含在MIME 字段中的单个text/plain部分。multipart无论data财产的长度如何,它都应该起作用。请记住,MIME 字段不是传统的 Notes Rich Text。在大多数情况下,它可以与富文本互换,但这取决于您对数据的处理方式。

警告:我没有尝试在我的示例中发送确切的有效负载,但我 99% 确定它应该可以工作。有关multipart数据类型的更多信息,请参阅接收响应正文

于 2021-07-20T14:15:34.560 回答