पर नेस्टेड फॉर्मडेटा भेजना मुझे AJAX और FormData का उपयोग करके कुछ डेटा भेजने की आवश्यकता है, क्योंकि मैं एक फ़ाइल और कुछ अन्य पैरामीटर भेजना चाहता हूं। जिस तरह से मैं आमतौर पर डेटा भेजने यह है:AJAX
$.ajax({
type: 'POST',
url: 'some_url',
dataType: 'json',
processData:false,
contentType:false,
data:{
Lvl_1-1: 'something',
Lvl_1-2: 'something',
Lvl_1-3: {
Lvl_1-3-1: "something",
Lvl_1-3-2: "something",
Lvl_1-3-3: "something",
},
},
...
});
अगर मैं FormData() का उपयोग नहीं है, मैं कोई समस्या नहीं है, लेकिन जब FormData() का उपयोग कर, Lvl1 पर केवल डेटा ठीक है, लेकिन कुछ भी नेस्ट है इस
<b>array</b> <i>(size=3)</i>
'Lvl1-1' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'Something'</font>
<i>(length=23)</i>
'Lvl1-2' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>''Something''</font> <i>(length=3)</i>
'Lvl1-3' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'[object Object]'</font> <i>(length=17)</i>
अगर मैं FormData() का उपयोग करने के लिए सांकेतिक शब्दों में बदलना Lvl1-3 अंदर डेटा की तरह स्ट्रिंग के रूप में दिखाया गया है, [object Object]
के बजाय मैं [object FormData]
मिल मैं कैसे Lvl1-3 पर स्ट्रिंग के बजाय एक सरणी मिलता है ?
नोट: यदि फ़ाइल शीर्ष स्तर पर है (Lvl_1) मैं फॉर्मडेटा() का उपयोग कर फ़ाइल को बिना किसी समस्या के भेज सकता हूं। मैंने संलग्न फाइल का कोड नहीं लिखा क्योंकि यह समस्या नहीं है, नेस्टेड डेटा है। मैंने अभी फ़ाइल का जिक्र किया है इसलिए मैं फॉर्मडाटा() का उपयोग कर रहा हूं।
जांच https://github.com/foo123/serialiser।js से serialise जटिल/नेस्टेड फॉर्म फ़ील्ड बनाने के लिए डेटा, ऑब्जेक्ट, जेसन, यूआरएल-एन्कोडेड डेटा (लेखक) –