का उपयोग कर फ्लास्क सर्वर पर एक जेसन ऑब्जेक्ट को सही तरीके से कैसे पास करना है, मैं एक जेसन ऑब्जेक्ट पास करना चाहता हूं जिसमें मेरे क्लाइंट से नेस्टेड ऑब्जेक्ट्स को मेरे सर्वर पर पास किया जाए।jquery AJAX
क्लाइंट की तरफ, मेरे डेटा संरचना इस तरह दिखता है:
var response = {};
response['screening'] = '1';
response['assistance'] = 'wheelchair access';
response['guests'] = {};
response['guests']['1'] = {}
response['guests']['1']['first'] = 'John'
response['guests']['1']['last'] = 'Smith'
response['guests']['2'] = {}
response['guests']['2']['first'] = 'Dave'
response['guests']['2']['last'] = 'Smith'
और मेरे ajax कॉल इस तरह दिखता है:
$.ajax({
type: "POST",
url: window.location.pathname,
data: response
}).done(function(msg) {
alert("Data Saved: " + msg);
});
अपने सर्वर है, जो का उपयोग कर चलाया जाता है के लिए इस डेटा पोस्टिंग के बाद पायथन फ्लास्क, मैं ग्राहक से पोस्ट किए गए निरीक्षण का निरीक्षण करने के लिए request.form ऑब्जेक्ट का उपयोग करता हूं। मैं डेटा चाहते हैं उसी तरह से संरचित किया जाना है, हालांकि, इस सर्वर पर उत्पादन होता है:
ImmutableMultiDict([('guests[1][first]', u'John'), ('screening', u'2'), ('guests[2][last]', u'Smith'), ('guests[2][first]', u'Dave'), ('assistance', u'wheelchair access'), ('guests[1][last]', u'Smith')])
आप देख सकते हैं, प्रतिक्रिया [ 'मेहमानों'] वस्तु चपटा हो गया है, और सभी को अपने जैसे बच्चों,:
'मेहमानों [2] [पहले]'
... सिर्फ एक तार, नहीं उनके माता पिता प्रतिक्रिया [ 'मेहमानों'] के तत्व हैं।
क्या मेरे क्लाइंट से डेटा के इस ब्लॉक को मेरे सर्वर पर भेजने और बेहतर तरीके से इसकी संरचना को बनाए रखने का एक बेहतर तरीका है?
धन्यवाद!
पूरी तरह से काम करता है! धन्यवाद। एक बात यह है कि, .done() विधि कभी निष्पादित नहीं होती है, भले ही मैं अपने सर्वर पर डेटा देख सकूं, और जब मैं क्रोम देव नेटवर्क टैब की जांच करता हूं, तो इस अनुरोध के लिए एक पोस्ट 200 ओके है। – SeanPlusPlus
उपरोक्त टिप्पणी को कभी भी ध्यान न दें। मुझे सर्वर से मेरी प्रतिक्रिया jsonify करने की जरूरत है। इसके साथ मदद के लिए फिर से धन्यवाद। – SeanPlusPlus