0

如果新用户输入的电子邮件地址已经存在,我正在尝试检查表单。

这是我的 HTML:

$("#createform").validate({
            errorClass: "errormessage",
            validClass: "success",

        rules: {
            fname: {
                required: true,
                minlength: 2,
                string: true,
            },

            lname: {
                required: true,
                minlength: 2,
                string: true,
            },

            email: {
                required: true,
                email: true,
                remote: $.getJSON($SCRIPT_ROOT + "/_check_mail")
            },

            password: {
                required: true,
                minlength: 5,
            },

            confirmpassword: {
                equalTo: "#password"
            }
        }

这是我的 Flask 方法:

@app.route('/_check_mail')
def check_mail():
    mail = request.args.get('email')
    check = database.check_mail(mail)
    return check

其中 database.check_mail(mail) 检查电子邮件是否已在数据库中并返回 True 或 False(在 JSON 中)。

当我第一次加载页面并且客户端尝试访问烧瓶 URL (/_check_mail) 时,它可以工作:

  • 请求网址:http://0.0.0.0:5000/_check_mail
  • 请求方法:获取状态
  • 代码:200 OK

但是当我输入电子邮件时,我将此请求发送到获得 404 响应的服务器:

  • 请求网址:http://0.0.0.0:5000/[object%20Object]?email=arnoutaertgeerts%40gmail.com
  • 请求方法:GET
  • 状态码:404 未找到

所以我认为发送电子邮件有问题吗?有任何想法吗?

4

1 回答 1

0

问题解决了!我将此用于我的请求:

email: {
    required: true,
    email: true,
    remote: function( request, response ) {
        $.getJSON($SCRIPT_ROOT + "/_check_mail", {
        email: $('#email').val()
        }, response);
}

现在一切正常,除了显示错误消息。当电子邮件已经存在时,我会返回带有错误消息的字符串(如文档中所述),但不会显示消息。但是在查看收到的回复时,我清楚地收到了它!

于 2013-03-14T20:42:57.670 回答