Javascript Recaptcha错误“;意外标记";-Firebase云函数
我正在尝试将recaptcha集成到我的网站上。Im使用firebase云函数验证recaptcha。“app”函数的第一部分if语句运行良好。但是,当我完成recaptcha之后,接下来是请求(verifyURL,(err,response,body),它给了我两个错误。“POST 500”和“Uncaught(in promise)SyntaxError:位置0处JSON中的意外标记E”。非常感谢您的帮助。Javascript Recaptcha错误“;意外标记";-Firebase云函数,javascript,firebase,express,google-cloud-functions,recaptcha,Javascript,Firebase,Express,Google Cloud Functions,Recaptcha,我正在尝试将recaptcha集成到我的网站上。Im使用firebase云函数验证recaptcha。“app”函数的第一部分if语句运行良好。但是,当我完成recaptcha之后,接下来是请求(verifyURL,(err,response,body),它给了我两个错误。“POST 500”和“Uncaught(in promise)SyntaxError:位置0处JSON中的意外标记E”。非常感谢您的帮助。位置0处JSON中的意外标记E->这是因为您使用的是JSON.parse(body)在
位置0处JSON中的意外标记E
->这是因为您使用的是JSON.parse(body)
在检查回调中的err
值之前,请始终检查回调开始时是否有错误。意外标记E
可能是因为遇到错误时正文只是一个简单的字符串响应,而不是JSON。我仍然收到了错误,结果我不得不升级我的firebase plan to提出一个超出范围的请求..但是谢谢你的帮助
const functions = require('firebase-functions');
const express = require('express')
const request = require('request')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
app.post('/reserver', (req, res) => {
if(req.body.captcha === undefined || req.body.captcha === '' || req.body.captcha === null) {
return res.json({"success": false, "msg": "Bekræft venligst captcha"})
}
const secretKey = 'SECRET-KEY'
const verifyURL = `https://www.google.com/recaptcha/api/siteverify?secret=${secretKey}&response=${req.body.captcha}`
request(verifyURL, (err, response, body) => {
body = JSON.parse(body)
if(body.success != undefined && !body.success) {
return res.json({"success": false, "msg": "Failed captcha verify"})
}
return res.json({"success": true, "msg": "Godkendt captcha"})
})
})
exports.app = functions.https.onRequest(app)