文章内容

2020/1/15 21:50:21,作 者: 黄兵

Google reCAPTCHA V2 AJAX提交

由于项目需要,Google reCAPTCHA V2需要通过AJAX的方式提交。

在这篇文章中:在Flask中使用Google reCAPTCHA后端需要从前端获取:request.form.get('g-recaptcha-response')这个参数,在ajax中具体的写法如下:

$.ajax({
        type: 'POST',
        url: '/auth/validation',
        data: {"g-recaptcha-response": grecaptcha.getResponse()},
        beforeSend: function (xhr, settings) {
            if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken)
            }
        },
        success: (res) => {
            // TODO...
        }
    })

获取csrftoken的写法如下:

var csrftoken = $('meta[name=csrf-token]').attr('content')

最主要还是通过grecaptcha.getResponse()获取前端token数据,之后传输到后端。


参考资料:

1、g-recaptcha-response with AJAX

2、CSRF 保护


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Google reCAPTCHA V2 AJAX提交

分享到:

发表评论

评论列表