2013-02-26 15 views
13

Böyle bir veri yapısına sahip

$.ajax({ 
    type: 'POST', 
    data: post_obj, //this is my json data 
    dataType: 'json', 
    url: '', 
    success: function(e){ 
     console.log(e); 
    } 
}); 

ve ben şişesi ile sunucusunda olsun istiyorum: title = request.form['title'] iyi çalışıyor!

content nasıl edinebilirim?

request.form.getlist('content') çalışmıyor. Eğer POST jQuery tarafından sunulmadan incelemek, büyük olasılıkla content aslında varlık olduğunu göreceksiniz, D

+0

Nasıl 'yaklaşık content = request.form [ 'content': (zaten deşifre) request.json aracılığıyla erişilir

$.ajax({ type: 'POST', // Provide correct Content-Type, so that Flask will know how to process it. contentType: 'application/json', // Encode your data as JSON. data: JSON.stringify(post_obj), // This is the type of data you're expecting back from the server. dataType: 'json', url: '/some/url', success: function (e) { console.log(e); } }); 

sunucu tarafında verilerde: Burada istemci tarafında yapmanız gerekenler var ] '? :) – favoretti

+0

@favoretti işe yaramaz: 'BadValueException:" content "türünde alan için kötü değer. Nedeni: "Değer bir örneği değil (var: liste) "' – Robin

+0

Tamam ve ne request.form.getlist (' content ') 'döndürür? 'Çalışmıyor' hakkında biraz daha detaylar yardımcı olabilir. Maalesef test etmek için elinizde bir şişe yok. – favoretti

cevap

16

Veri kodunuzu JSON yerine sorgu dizesi olarak gönderiyorsunuz. Flask, JSON kodlu verileri işleyebilme yeteneğine sahiptir, bu yüzden bu şekilde göndermek daha mantıklıdır.

content = request.json['content'] 
+0

Harika! Teşekkürler :) – Robin

2

:

enter image description here

Çok teşekkürler:

Bu

kundakçı post veridir content[] olarak geçirildi. Flask'in request nesnesinden erişmek için request.form.getlist('content[]')'u kullanmanız gerekir.

content olarak geçmesini tercih ederseniz, $.ajax() aramanıza traditional: true ekleyebilirsiniz.

Bu konuyla ilgili daha fazla ayrıntı, http://api.jquery.com/jQuery.ajax/'un 'data' ve 'traditional' bölümlerinde bulunabilir.

+0

cevabınız için teşekkürler. – Robin

+0

"geleneksel: true" değerini $ .ajax olarak ayarladığımda. Sunucuda nesne [nesne] gibi bir dize aldım ... ama istediğim deðil :( – Robin

+0

Farklı sunucu tarafýndaki teknolojiler farklý bir þekilde ele alýyor: Audrius tarafýndan saðlanan JSON ile ilgili cevaba bakmak isteyebilirsiniz .. – dirn

İlgili konular

 İlgili konular