将json数据从jquery传递给flask

时间:2017-10-02 20:11:15

标签: javascript jquery python json flask

我想将一些Json数据从jQuery传递给flask。我有一个add user方法,它接受一些表格值并将它们传递给烧瓶。

function kullaniciEkle(event) // add a user
{
    event.preventDefault();

    var hataSayisi = 0;

    $('#addUser input').each(function (index, val) {
        if ($(this).val() === '') {
            hataSayisi++;
        }
    });

    console.log("Number of errors: ", hataSayisi);

    if (hataSayisi === 0) {

        var yeniKullanici = {
            'kullanıcıAdı' : $('#kullaniciEkle fieldset input#girisIsim').val(),
            'eposta' : $('#kullaniciEkle fieldset input#girisEposta').val(),
            'tamİsim' : $('#kullaniciEkle fieldset input#girisTamIsim').val(),
            'yaş': $('#kullaniciEkle fieldset input#girisYas').val(),
            'yer' : $('#kullaniciEkle fieldset input#girisSehir').val(),
            'cinsiyet' : $('#kullaniciEkle fieldset input#girisCinsiyet').val()
        }

        console.log(yeniKullanici);
        console.log(JSON.stringify(yeniKullanici));

        $.ajax({
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(yeniKullanici),
            url: '/add',
            success: function(data){
                console.log("Are we here?");
                $('#kullaniciEkle fieldset input').val('');


            },
            error: function(xhr, textStatus, error){
                alert(xhr.responseText);
            },
            dataType: "json"
        });

    } else {
        alert("Please fill in all form fields");
    }

}

烧瓶中的添加方法就是这样。

@app.route('/add', methods=['POST'])
def addUser():
    if request.method == "POST":
        content = request.get_json(silent=True)
        print (content)
        return 'Hi there'

看起来我可以从烧瓶中获取json数据。但是在jQuery方面我假设错误部分被执行了。因为如果addUser()函数返回此值,或者如果返回值为空则返回空警报消息,因此我收到一条警告消息“Hi there”。

1 个答案:

答案 0 :(得分:2)

ajax调用中的dataType参数告诉jQuery从服务器返回的类型。你已经指定了json,但是你没有从Flask处理程序返回JSON,所以jQuery会抛出错误。

要么实际返回JSON,要么删除该参数。