1

我正在编写一个 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选项发出的,在这种情况下,响应正文为空。

有人可以帮我弄清楚我在这里遗漏了什么或做错了什么吗?

4

0 回答 0