JavaScript/Typescript-Azure函数在HTTP正文希望为空时返回响应

JavaScript/Typescript-Azure函数在HTTP正文希望为空时返回响应,javascript,typescript,azure-functions,httpresponse,Javascript,Typescript,Azure Functions,Httpresponse,我正在使用Azure函数v2(TypeScript),并使用func start 我想从Azure函数中得到一个空的HTTP正文响应(状态为200和400)。然而,我发现我得到的回应是: {“json”:“{}} 我使用的代码是: context.res={status:200} 当我尝试以下代码时: context.res={状态:200,正文:'} 然后我得到了如下的回答: {“string”:“{}} 我真的只想要空响应,因为我正在做一个补丁动词,不需要返回一个主体(我也希望主体为空,这样

我正在使用Azure函数v2(TypeScript),并使用
func start

我想从Azure函数中得到一个空的HTTP正文响应(状态为200和400)。然而,我发现我得到的回应是:

{“json”:“{}}

我使用的代码是:

context.res={status:200}

当我尝试以下代码时:

context.res={状态:200,正文:'}

然后我得到了如下的回答:

{“string”:“{}}

我真的只想要空响应,因为我正在做一个补丁动词,不需要返回一个主体(我也希望主体为空,这样我就不会向攻击者提供潜在信息)

My function.json是:

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "patch"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ],
  "scriptFile": "../dist/function1/index.js"
}

您使用的azure功能核心工具的版本是什么?我无法在此版本上复制此行为:Azure函数核心工具(2.7.1948提交哈希:29a0626ded3ae99c4111f66763f27bb9fb564103)函数运行时版本:2.0.12888.0相同的一个2.7.1948(运行func时--version)和与您相同的运行时版本(执行func启动时显示)。对于@azure/函数的NPM库,我有版本1.0.1-beta1,但有一个版本是1.0.3。我将尝试升级,看看这是否会有所不同。嗯,这应该还是不好的。你介意在原版中分享你的.ts代码吗?还是简化版的代码仍然表现出这种行为?我尝试了一个小例子,它如预期的那样工作。我还试着玩弄我的示例,发现虽然这失败了:context.res=Responses.GenericFailure,但它仍然有效:context.res.status=400;我怀疑正在发生的事情是,不知何故返回一个对象会弄脏响应。有趣的是,在我的小例子中,这样做是有效的;但在我更大的例子中,它没有。问题似乎与序列化有关,或者可能与typescript如何包装对象有关(我相信通过类等,它可以在对象周围添加各种锅炉板)。请注意,在使用typescript时,您应该运行
npm start
,而不是在监视模式下运行typescript编译器,除非您已经这样做了。