2012-05-03 21 views
23

मैं एक नियंत्रक को एक फॉर्म भेजने के साथ प्रयोग कर रहा हूँ। jQuery प्रलेखन का कहना है कि .serializeArray() को एक जेसन सरणी भेजनी चाहिए, और .serialize() को क्वेरी स्ट्रिंग बनाना चाहिए।.serialize() और .serializeArray() के बीच क्या अंतर है?

हालांकि, जब मैं इसे आज़माता हूं, और आईई 9 एफ 12-मोड के साथ निरीक्षण करता हूं, तो यह दोनों मामलों में एक क्वेरी स्ट्रिंग जैसा दिखता है। जो भी मैं कॉल करता हूं ...

मुझे क्या याद आ रही है?

+3

देखो [1] [1]: http://stackoverflow.com/questions/4235052/jquery-question-about-serializearray-and-serialize –

+0

मैं वास्तव में है कि पहले देखा था इस सवाल को पोस्ट करना मैं अभी भी समझ में नहीं आता! – kaze

+0

क्या आप डीबग कंसोल में जो परिणाम देखते हैं उसे दे सकते हैं? – Julien

उत्तर

33

serializeArray एक सरणी बनाता है ( "जेसन सरणी" - ऐसी कोई चीज़ नहीं है); आप इसे console.log($("#myform").serializeArray()) के साथ स्वयं जांच सकते हैं। दूसरी तरफ, serialize एक क्वेरी स्ट्रिंग बनाता है जो HTTP अनुरोध का हिस्सा बनने के लिए है। दोनों प्रतिनिधित्व इस अर्थ में समतुल्य हैं कि उपयुक्त कोड का उपयोग करके आप किसी एक अस्पष्टता के बिना एक दूसरे को परिवर्तित कर सकते हैं।

दोनों संस्करणों के उपलब्ध होने का कारण यह है कि serialize अधिक सुविधाजनक है जब आप केवल HTTP अनुरोध करना चाहते हैं (केवल परिणाम स्ट्रिंग में परिणाम डालें) जबकि serializeArray अधिक सुविधाजनक है यदि आप परिणामों को संसाधित करना चाहते हैं।

jQuery की AJAX विधियों परवाह नहीं है यदि आप उन्हें एक या दूसरे देते हैं क्योंकि वे पैरामीटर के प्रकार का पता लगाते हैं और इसे एक क्वेरी स्ट्रिंग में परिवर्तित करते हैं, यदि यह पहले से नहीं है, तो बिंदु से अनुरोध पर्यवेक्षकों के बाहर किया जाता है यह नहीं बता सकता कि पैरामीटर का मूल प्रारूप क्या था। [यह] पर

+2

ठीक है! लेकिन - दोनों serialize() और serializeArray() होने का क्या मतलब है? – kaze

+9

@kaze: यह पूछने की तरह है कि स्पोर्ट्स कार और स्टेशन वैगन दोनों होने का क्या मतलब है। यदि एकमात्र चीज जिसे आप उनका उपयोग करने जा रहे हैं, तो सड़क के नीचे 500 मीटर की दूरी पर गाड़ी चला रही है, इसमें कोई फर्क नहीं पड़ता है, लेकिन अधिकांश अन्य चीजों के लिए आपको नौकरी के लिए सही उपकरण का उपयोग करने की आवश्यकता है। – Jon

+1

अब मैं देखता हूं। मैंने console.log में कोशिश की है, और मैं अंतर देखता हूं। मैं परेशान था कि मुझे अपने अजाक्स-कॉल में कोई अंतर नहीं दिखाई दे रहा था। – kaze

संबंधित मुद्दे