के साथ ऑब्जेक्ट्स की एक सरणी कैसे पोस्ट करूं I Zepto या Jquery में $ .ajax के साथ ऑब्जेक्ट्स की एक सरणी पोस्ट करना चाहता हूं। दोनों एक ही अजीब त्रुटि प्रदर्शित करते हैं, लेकिन मुझे वह नहीं मिल रहा है जो मैं गलत कर रहा हूं।
डेटा 'रीस्टेसी' जैसे परीक्षण क्लाइंट का उपयोग करते समय सर्वर पर सहेजा जाता है, और मैं ब्राउजर के नेट पैनल में उलझने का अनुरोध देख सकता हूं, इसलिए मेरा मानना है कि जेएस अपराधी है।
यदि मैं पोस्ट की डेटा प्रॉपर्टी के रूप में ऑब्जेक्ट्स की एक सरणी भेजता हूं, तो उन्हें ठीक से नहीं भेजा जाता है।
डाटा वस्तु:
var postData = [
{ "id":"1", "name":"bob"}
, { "id":"2", "name":"jonas"}
]
अनुरोध:
$.ajax({
url: _saveDeviceUrl
, type: 'POST'
, contentType: 'application/json'
, dataType: 'json'
, data: postData
, success: _madeSave.bind(this)
//, processData: false //Doesn't help
});
अनुरोध शरीर ब्राउज़र के रूप में देखा:
"bob=undefined&jonas=undefined"
यह $ परम का उपयोग करके अधिक सीधे देखा जा सकता है विधि जो jQuery और Zepto दोनों पोस्ट डेटा तैयार करने के लिए उपयोग करते हैं।
$.param(
[
{ "id":"1", "name":"bob"}
, { "id":"2", "name":"jonas"}
]
)
// Output: "bob=undefined&jonas=undefined"
तो यह तैयारी है कि इन पुस्तकालयों जटिल पद डेटा के लिए अलग है की तुलना में मैं उम्मीद कर की तरह लगता है।
मुझे यह उत्तर दिखाई देता है, लेकिन मैं डेटा को क्वेरी पैरा के रूप में नहीं भेजना चाहता क्योंकि मैं बहुत सारी सामग्री पोस्ट कर रहा हूं। How do I send an array in an .ajax post using jQuery?
jQuery/Zepto का उपयोग कर पोस्ट पर एकाधिक ऑब्जेक्ट भेजने का सही तरीका क्या है?
$ .ajax ({... डेटा: JSON.stringify (postData) ...} का उपयोग करके) गैर-उलझन वाली सामग्री भेजता है, लेकिन सर्वर प्रारूप को पसंद नहीं करता है।
अद्यतन: लगता JSON.stringify भेजता है सही ढंग से स्वरूपित सामग्री की तरह। मुद्दा यह है कि सर्वर की तरफ ऑब्जेक्ट की संरचना के बारे में बहुत विशिष्ट है, जो वह चाहता है। यदि मैं ऑब्जेक्ट से किसी भी गुण को जोड़ता या हटाता हूं, तो यह मिलान करने वाली गुणों का उपयोग करने की बजाय पूरी प्रक्रिया में विफल हो जाएगा। यह असुविधाजनक है क्योंकि सर्वर-प्रेषित सामग्री को एक दृश्य मॉडल के रूप में उपयोग करना अच्छा होता है, लेकिन मॉडल को बदलना देखें। ... अभी भी सर्वोत्तम समाधान पर काम कर रहा है।
क्या आप PHP का उपयोग कर यह डेटा प्राप्त कर रहे हैं? यदि हां, तो आप [.serialize()] (http://api.jquery.com/serialize/) का उपयोग करने का प्रयास कर सकते हैं, लेकिन आपको चर नामों के अंत में '[] 'जोड़ने की आवश्यकता होगी और उन्हें सरणी –