HTTP spec का कहना है कि एक POST अनुरोध में डेटा का मनमाना शरीर हो सकता है।
यह सही है। बदले में उस डेटा के प्रारूप के कई विनिर्देश हैं। एचटीएमएल रूपों के मामले में, आमतौर पर application/x-www-form-urlencoded
का उपयोग किया जाता है, इसके बाद multipart/form-data
होता है। आप इसे enctype
HTML <form>
तत्व की विशेषता के माध्यम से सेट कर सकते हैं। HTML विनिर्देश के अध्याय 17.13.4 Form Content Types को भी देखें।
एक HTML प्रपत्र तत्व एक यूआरएल के लिए पोस्ट कर सकते हैं और इनपुट तत्व शामिल हो सकते हैं, लेकिन जो इनपुट तत्वों एक क्वेरी स्ट्रिंग में बदल जाते हैं।
वास्तव में कैसे काम करता है application/x-www-form-urlencoded
है। ध्यान दें कि यह क्वेरी स्ट्रिंग वास्तव में पूरे HTTP अनुरोध निकाय का प्रतिनिधित्व करती है! तो जैसा कि आपको लगता है कि अनुरोध निकाय निश्चित रूप से खाली नहीं है।
मैं कैसे प्राप्त कर सकते हैं एक रूप भी HTTP POST अनुरोध भेजता है कि जब इसकी सबमिट बटन के शरीर में डेटा के साथ भेजने के लिए दबाया जाता है?
यह वास्तव में पहले से ही ऐसा करता है।
<form onsubmit="this.source.value=this.outerHTML">
...
<input type="hidden" name="source" />
<input type="submit" />
</form>
पूरे HTML: आप प्रपत्र पर ही के HTML डोम पेड़ प्रतिनिधित्व, के रूप में कुछ हद तक पिछले बयान में संकेत दिया की एक प्रति भेजने के लिए intented है, तो आप जो JavaScript की थोड़ी सी सहायता से इस प्रकार प्राप्त कर सकते हैं फॉर्म का डोम वृक्ष प्रतिनिधित्व तब source
नाम के साथ अनुरोध पैरामीटर के रूप में उपलब्ध स्ट्रिंग प्रारूप में है।
यदि मैं पोस्ट करने के लिए AJAX का उपयोग करता हूं, तो ब्राउज़र स्वचालित रूप से HTTP प्रतिक्रिया को संभाल नहीं लेगा, और मैं इसे चाहता हूं। दूसरे शब्दों में, मैं इस प्रश्न का उत्तर ढूंढ रहा हूं जो जावास्क्रिप्ट पर निर्भर नहीं है, बल्कि सिर्फ HTML है। –