如何通知客户端 reCaptcha 成功
how to notify client that reCaptcha is successful
你好,我有一个简单的表单,我有 google reCaptcha v2,当用户提交表单时,我正在验证 recaptcha,但我也向用户输入的电子邮件发送电子邮件,我需要发送状态 200 两次,这是第一次我需要发送的时间
request(verifyURL, (err, res, body)=>{
body = JSON.parse(body);
if(body.success !== undefined && !body.success){
return res.status(409).send({
success: false,
message: 'დადასტურება ვერ ვოხერხდა'
})
}
return res.status(200).send({success: true})
})
所以如果我发送状态代码 200 并使用 return 语句,它不会导致
Can't set headers after they are sent
错误?
如果可以,我该如何解决?
谢谢!
您不能为单个请求发送多个响应。你可以选择:
1.在同一个控制器中发送邮件,当它成功完成后,只将响应发送回客户端。您的回答将基于这两个因素,即。验证码验证和电子邮件发送响应
或 2. 如果您不想等待电子邮件处理.. 只需在您的验证码通过验证后发送回复.. 并在后台执行邮件处理。在这种情况下,您需要删除 return 关键字,否则您的请求将在那里结束并且邮件进程将不会执行。
但是,我建议您使用第一种方法。希望这有帮助:)
你好,我有一个简单的表单,我有 google reCaptcha v2,当用户提交表单时,我正在验证 recaptcha,但我也向用户输入的电子邮件发送电子邮件,我需要发送状态 200 两次,这是第一次我需要发送的时间
request(verifyURL, (err, res, body)=>{
body = JSON.parse(body);
if(body.success !== undefined && !body.success){
return res.status(409).send({
success: false,
message: 'დადასტურება ვერ ვოხერხდა'
})
}
return res.status(200).send({success: true})
})
所以如果我发送状态代码 200 并使用 return 语句,它不会导致
Can't set headers after they are sent
错误? 如果可以,我该如何解决?
谢谢!
您不能为单个请求发送多个响应。你可以选择: 1.在同一个控制器中发送邮件,当它成功完成后,只将响应发送回客户端。您的回答将基于这两个因素,即。验证码验证和电子邮件发送响应 或 2. 如果您不想等待电子邮件处理.. 只需在您的验证码通过验证后发送回复.. 并在后台执行邮件处理。在这种情况下,您需要删除 return 关键字,否则您的请求将在那里结束并且邮件进程将不会执行。
但是,我建议您使用第一种方法。希望这有帮助:)