我正在编写一个 Cosmos DB 后触发器(不是 Azure 函数触发器类型,而是服务器内 JS 触发器)。在这个触发器中,我需要访问响应中生成的etag标头。触发器工作正常,除非我添加以下代码:
// Retrieve item's new etag from the response
var newETag = __.response.getValue("etag");
此代码导致请求失败,并出现以下异常:“无法在 getValueInternal 处获取未定义或空引用的属性‘值’ ”。我检查了响应不是null并且该getValue
函数存在,实际上异常是从getValue
函数内部抛出的,因为etag的属性不存在。
然而,文档(在此处找到)指出:
getValue(key) → {string} 获取指定的响应头值。
其他文档(在此处找到)也指出:
以下响应标头对于来自 SQL API 的所有响应都是通用的: ... etag(etag 标头 [...] 与响应正文中的 _etag 属性具有相同的值。)...
现在我还确认我确实可以从 访问etag,__.response.getBody()
但我不能依赖该选项,因为我的请求是使用EnableContentResponseOnWrite = false
选项发出的,在这种情况下,响应正文为空。
有人可以帮我弄清楚我在这里遗漏了什么或做错了什么吗?