在我的 Express 服务器上,g-recaptcha-response 始终不返回任何内容。这是我目前的代码:
<div class=container-fluid id=mcenter>
<form id='monitstart' action="/monitstart" method="POST">
<input type="text" class="form-control" aria-label="..." name=>
<button class="g-recaptcha" data-sitekey="SITEKEYHERE" data-callback="onSubmit"></button>
</form>
</div>
在我的服务器上
var express = require('express')
var router = express.Router()
var request = require('request')
router.post('/monitstart', function (req, res) {
request({url: "https://www.google.com/recaptcha/api/siteverify?secret=SECRETHERE&response=" + req.body['g-recaptcha-response']} + '&remoteip=' + req.connection.remoteAddress, function (err, response, body) {
req.send(body)
})
})
module.exports = router
当我尝试验证它时,它给我一个代码 500 并显示 TypeError: Cannot read property 'g-recaptcha-response' of undefined
最佳答案
OP在下面的简短讨论中接受的正确答案涉及将主体解析中间件(body-parser
)添加到管道中,以便在从那里读取值之前正确初始化请求对象的body
属性。
关于javascript - Node.js 上的 ReCaptcha 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020513/