首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AJAX进行验证,以确保相同的电子邮件不会放入数据库中

使用AJAX进行验证,以确保相同的电子邮件不会放入数据库中
EN

Stack Overflow用户
提问于 2019-06-06 02:07:56
回答 1查看 47关注 0票数 0

我正在尝试使用jQuery for validation查询数据库,以确保同一电子邮件不会在我的应用程序中使用两次。

1)我不确定jQuery is correct是否。我知道它是从选择器的目标输入中获取信息,但我在查看发送到服务器的对象中的内容时遇到了问题。

2)发送到server is causing a 400 error. 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.的信息

-I想知道如何访问正在传递到字典中的值。request.body.keys() and request.body.values()不起作用。我认为我传递的字典,.ajax() method应该是request.body中的字典

-Am我是否通过将.serialized()放在实际输入而不是整个表单上来传递正确的数据?我最初在表单的id上使用.serialize() method

-Is it my MySQL query,或者我如何在发送查询之前将字典传递给字符串?我检查了MySQL,它用我写的代码查询了电子邮件。

-Is我的逻辑将工作,以插入部分内部的div?我不确定部分是否正确。

代码语言:javascript
复制
{% if found == True %}
<p class="error-email">Email has been taken.</p>
{% endif %}
{% if found == False %}
<p class="success-email"> This email is available</p>
{% endif %}

-this是部分HTML代码

代码语言:javascript
复制
 <div id="email"></div>
 <input type="email" name="email" placeholder="email" id="email-form">

*这是HTML -当按下up键激活异步代码时,div用于部分

代码语言:javascript
复制
@app.route('/check', methods=["POST"])
def check_avaliability_of_email():
    found = False
    mysql = connectToMySQL('flask_canidate_survey_app')
    query = 'SELECT email FROM flask_canidate_survey_app.users WHERE users.email = "%(check_value)s"'
    print('AJAX_DATA:', request.form.get('email'))
    value_ = data
    check_value = {'user': value_}
    result = mysql.query_db(query, data)
    if result:
        found = True
    return render_template('/partials/validation_email.html', found=found)

*服务端代码( python )

代码语言:javascript
复制
$(document).ready( function() {
    $('#email-form').keyup(function() {
        var emailData = $('#email-form').serialize()
        $.ajax({
            method: "POST",
            url: "/check",
            data: emailData
        })
        .done(function(res) {
            $('#email').html(res)
        });
    });
});

这是js/jQuery AJAX调用,结果是:

我得到了我之前放置的400错误,并且唯一打印的是不可变字典。

400错误请求:浏览器(或代理)发送了此服务器无法理解的请求。

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 07:54:03

打印的不可变字典是因为您打印的是表单对象,而不是值。要获取实际值,请使用:request.form.get('email')

另外,注意到您正在设置value_ = data,而数据还没有设置,我假定您想要这样做:value_ = request.form.get('email')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56465855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档