2017-10-02 19 views
0

jsonからフラスコにいくつかのJsonデータを渡したいと思います。私はいくつかのフォームの値を取り、それらをフラスコに渡すadd userメソッドを持っています。jsonからフラスコにjsonデータを渡す

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'が表示されるためです。

答えて

2

ajax呼び出しのパラメータdataTypeは、jQueryに、サーバーからどのようなタイプが返されるかを指示します。 jsonを指定しましたが、FlaskハンドラからJSONを返さないため、jQueryがエラーをスローします。

実際にJSONが返されるか、そのパラメータが削除されます。

関連する問題