【发布时间】:2014-03-15 19:32:16
【问题描述】:
我正在寻找一个回调,以便在我的 angularjs 中的 $save 方法中使用。
我正在向 node.js 后端发送一篇博文,并通过 recaptcha 验证。
按照$resource 文档中的操作无效:
非 GET 实例操作:instance.$action([parameters], [success], [error])
var post = new Posts({
title: this.title,
content: this.content,
response: this.model.captcha.response,
challenge: this.model.captcha.challenge
});
post.$save({},
function(addedpost) {
$location.path('posts/' + addedpost._id);
}, function(error) {
console.log(error);
vcRecaptchaService.reload();
});
在服务器中,我使用 node.js 的 simple_recaptcha 模块来验证请求中包含的 recaptcha 质询和响应。
var verifyRecaptcha = function(req,res,next){
var privateKey = 'XXXXXXXXXXXXXXXXXXXXXXXX';
var ip = req.ip;
var challenge = req.body.challenge;
var response = req.body.response;
simple_recaptcha(privateKey, ip, challenge, response, function(err) {
if(err) return res.send(401,err.message);
console.log('Recaptcha verified!');
});
next();
};
因此,当验证码正确时,它应该继续并将帖子添加到数据库,如果不正确,则后端响应 401 并且前端 angular js 应将此识别为错误并刷新重新验证码。
我错过了什么?
【问题讨论】:
-
你在浏览器调试工具网络选项卡中看到了什么,如果这是 Angular 端或 Node 端的问题,应该缩小范围。
标签: node.js angularjs recaptcha