在 POST 正文中发送验证码秘密而不是 URL 参数

Lor*_*mon 0 recaptcha recaptcha-v3

当我将值作为 URL 参数传递时,ReCaptcha 的服务器集成效果很好。

{
  "success": false,
  "error-codes": [
    "missing-input-response",
    "missing-input-secret"
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我在 POST 正文中以 JSON 形式传递值时,请求失败。

{
  "success": true,
  "challenge_ts": "2018-10-26T16:01:24Z",
  "hostname": "testkey.google.com"
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我看到的示例代码建议使用 URL 参数,但没有解释为什么不支持 JSON POST 正文。

谷歌的常见问题解答也没有列出它,我想知道我是否做错了什么。是否可以通过 JSON 来请求?

小智 5

Google 的 recaptcha api 不支持 json body。他们希望您将正文作为查询参数发送。

例如:

  • 发布请求。
  • 正文:'秘密=xxxxxxxxxxxxxxx&响应=xxxxxxxxxxxxxxxxxxxxxxxx'
  • 标头:'内容类型':'application/x-www-form-urlencoded'