通过AJAX / Domino数据服务API

时间:2016-08-15 10:39:06

标签: ajax lotus-notes lotus-domino

我的任务是更新遗留的Notes应用程序 - 我宁愿做其他任何事情,但这就是生活。根据{{​​3}},如果数据格式为

,我应该能够更新富文本字段
FieldName: { contentType: 'text/html', data: newData, type: 'richtext' }

(当然,序列化为JSON)

但是会发生的情况是原始RT字段被三个MIME部分字段(具有相同的名称,包含您期望的,"Content-Type: multipart/mixed""boundary"等)替换,并"newData"存储在$FILE附件中。此外,还有一些特定于MIME的字段会添加到文档中($MIMETrack$NoteHasNativeMIMEMIME_Version)。

现在这肯定不是Notes文档第一次与实际功能不匹配,但我想知道是否有人能够成功地做到这一点?或者,通过AJAX更新RT字段的任何其他方式(最好使用HTTP PATCH)?

编辑:经过进一步检查,这似乎是一个配置问题。我尝试从带有RT字段的文档中进行GET(包含文本"测试rt字段",通过常规Web表单提交),预期结果将根据API

"FieldName": {
"contentType":"text/html",
"data":"testing rt field",
"type":"richtext"
}

但是返回的是

"FieldName": {
"type":"multipart",
"content": [
{
"contentType":"multipart\/alternative; Boundary=\"0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26\"",
"contentDisposition":"inline"
},
{
"contentType":"text\/plain; charset=US-ASCII",
"data":"testing rt field",
"boundary":"--0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26"
},
{
"contentType":"text\/html; charset=US-ASCII",
"contentDisposition":"inline",
"data":"<html><body><font size=\"2\" face=\"sans-serif\">testing rt field<\/font><\/body><\/html>",
"boundary":"--0__=4DBB0A82DFA47A268f9e8a93df938690918c4DBB0A82DFA47A26"
}
]
}

(抱歉格式化)

所以我猜测我们的Domino配置存在问题。在哪里,我不知道,任何提示将不胜感激。

1 个答案:

答案 0 :(得分:1)

在Domino 8.5.3 UP1中,数据服务将富文本字段表示为一个HTML部分(the 8.5.3 doc中所述的"type": "richtext")。这有一些严重的局限性。例如,您无法创建包含嵌入图像和附件的富文本字段。

自Domino 9.0以来,数据服务将富文本字段表示为多个部分(the 9.0.1 doc中所述的"type": "multipart")。但是,您仍然可以PUT和POST旧的富文本格式,并且可以通过在URL中指定multipart=false来获取旧格式。换句话说,原始海报似乎正在使用Domino 9.0,它正在按预期工作。