googles recaptcha(第2版)回复

时间:2015-09-06 19:22:55

标签: javascript node.js handlebars.js recaptcha

你如何处理来自谷歌的JSON响应?

这就是我获得JSON的方式:

 res.on('data', function (chunk) {
            //process.stdout.write(chunk);//formats it like I need it

            var lines =JSON.parse(chunk);
});

我从google获得的内容(例如),Google JSON的外观如何:

{ success: false, 'error-codes': [ 'missing-input-response' ] }

我认为会起作用:

JSON.parse("{ success: false, 'error-codes': [ 'missing-input-response' ] }").success;

当然它不起作用,因为它不适合格式化。

实际上有什么用(但为此我需要从谷歌转换JSON):

JSON.parse("{  "success": false,  "error-codes": [    "missing-input-response"  ]}").success

然后我找到this

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function(chunk) {//chunk is the JSON from google
    var lines = chunk.split("\n");
    if(lines.length >= 2) {
        if(lines[0] == 'true')
            that._recaptcha_response.is_valid = true;
        that._recaptcha_response.error = lines[1];
    }
    that.emit('data', that._recaptcha_response);
  });
});

但这似乎不适用于我的地方,也许他们将JSON从recaptcha版本1更改为版本2!。

已更新

更深入的了解如下:

Look here

2 个答案:

答案 0 :(得分:0)

看起来JSON可能已经为您解析了。 { success: false, 'error-codes': [ 'missing-input-response' ] }是Node.js打印出对象的方式。

答案 1 :(得分:0)

好的,这解决了我的问题:

echo '*.py diff=python' >> .gitattributes

假设JSON.parse(blal.replace(/\n|\r/g, "")).success; 是谷歌JSON。