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"
            }
        }

そして、これは私のフラスコの方法です:

@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)にアクセスしようとすると、次のように機能します。

  • リクエストURL:http://0.0.0.0:5000/_check_mail
  • リクエスト方法:GETステータス
  • コード:200OK

しかし、電子メールを入力すると、404応答を受け取るサーバーにこの要求を送信します。

  • リクエストURL: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 に答える