我想将一些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”。
答案 0 :(得分:2)
ajax调用中的dataType
参数告诉jQuery从服务器返回的类型。你已经指定了json
,但是你没有从Flask处理程序返回JSON,所以jQuery会抛出错误。
要么实际返回JSON,要么删除该参数。