इवानज़ ने मुझे सूचित किया कि यह दृष्टिकोण उनके लिए काम नहीं करता है, जिसने मुझे HTML5 FormData
ऑब्जेक्ट में कुछ शोध करने के लिए प्रेरित किया। जैसा कि यह पता चला, मैं इसके बारे में पूरी तरह से गलत था (नीचे पुराना गलत जवाब देखें)। FormData
के लिए सभी डेटा देशी कोड में रहता है। इसका अर्थ यह है कि ब्राउज़र फॉर्म फ़ील्ड के लिए डेटा को संभालता है और इसके कार्यान्वयन की भाषा में फ़ाइल अपलोड करता है।
MDN का हवाला देते हुए:
नोट: ... FormData वस्तुओं stringifiable ऑब्जेक्ट नहीं है। यदि आप सबमिट किए गए डेटा को स्ट्रिंग करना चाहते हैं, तो पिछले शुद्ध-AJAX उदाहरण का उपयोग करें। ध्यान दें कि, हालांकि इस उदाहरण में कुछ फ़ाइल फ़ील्ड हैं, जब आप फॉर्मडाटा एपीआई के माध्यम से कोई फॉर्म सबमिट करते हैं तो आप फ़ाइलरिएडर एपीआई का उपयोग करने की आवश्यकता नहीं है: फ़ाइलें स्वचालित रूप से लोड और अपलोड की जाती हैं।
कोई रास्ता जावास्क्रिप्ट में यह जानकारी प्रतिनिधित्व करने के लिए नहीं है, इसलिए के रूप में JSON काम नहीं करेगा (जो मुझे संकेत देता है आश्चर्य क्यों इस उत्तर पहली जगह में स्वीकार कर लिया गया) मेरी भोली सुझाव बस इसे क्रमानुसार करने।
जो आप प्राप्त करने का प्रयास कर रहे हैं उसके आधार पर (उदाहरण के लिए। यदि आप केवल डीबग करने का प्रयास कर रहे हैं), तो यह संभव है कि यह जानकारी किसी सर्वर साइड स्क्रिप्ट से उछाल दे जो संभव JSON मेटाडेटा लौटाती हो। उदाहरण के लिए, PHP में, आप अपना फॉर्मडाटा analyzeForm.php
पर भेज सकते हैं, जो प्रासंगिक अनुरोध superglobal के तहत फ़ॉर्मडाटा से जुड़ी सबकुछ आसानी से एक्सेस कर सकता है। लिपि आपके फॉर्म की सामग्री को पचाने और JSON को पार्स करने के लिए प्रासंगिक जानकारी को वापस लाएगी। यह बहुत अक्षम है, इसलिए यह शायद उत्पादन वातावरण के लिए उपयुक्त नहीं है, लेकिन यह कुछ है।
पुरानी गलत उत्तर:
आप का उपयोग कर की कोशिश कर सकते:
alert(JSON.stringify(fd));
fd
की संरचना का एक शाब्दिक प्रतिनिधित्व देखने पर।
आप console.log
का भी उपयोग कर सकते हैं, लेकिन यह एक गैर-मानक सुविधा है और सभी ब्राउज़रों में उपस्थित होने की गारंटी नहीं है।
स्रोत
2012-12-01 19:30:09
और कोड, साथ ही साथ अपने एचटीएमएल दिखाएं। –