forms - क्रोम देव उपकरण नेटवर्क टैब में दिखाई देने वाले "अनुरोध डेटा लोड" बनाम "फॉर्म डेटा" के बीच क्या अंतर है




http rest (2)

क्रोम में, 'सामग्री-प्रकार: एप्लिकेशन / जेसन ' के साथ अनुरोध अनुरोध पेडलोड के रूप में दिखाता है और जेसन ऑब्जेक्ट के रूप में डेटा भेजता है।

लेकिन 'सामग्री-प्रकार: एप्लिकेशन / एक्स-www-form-urlencoded' के साथ अनुरोध फ़ॉर्म डेटा दिखाता है और डेटा को कुंजी के रूप में भेजता है : वैल्यू जोयर , इसलिए यदि आपके पास एक कुंजी में ऑब्जेक्ट की सरणी है तो यह उस कुंजी का मान फ़्लैट करता है:

{ Id: 1, 
name:'john', 
phones:[{title:'home',number:111111,...},
        {title:'office',number:22222,...}]
}

भेजता है

{ Id: 1, 
name:'john', 
phones:[object object]
phones:[object object]
}

मेरे पास एक पुराना वेब एप्लिकेशन है जिसे मुझे समर्थन देना है (जिसे मैंने नहीं लिखा था)।

जब मैं कोई फॉर्म भरता हूं और जमा करता हूं तो क्रोम में "नेटवर्क" टैब की जांच करें, मुझे "अनुरोध पेलोड" दिखाई देता है जहां मैं आमतौर पर "फॉर्म डेटा" देखता हूं। दोनों के बीच क्या अंतर है और दूसरे के बजाय कब भेजा जाएगा?

इसे गुगल किया, लेकिन वास्तव में यह जानकारी समझाई गई कोई जानकारी नहीं मिली (केवल लोग "अनुरोध पेलोड" के बजाय "फॉर्म डेटा" भेजने के लिए जावास्क्रिप्ट ऐप्स प्राप्त करने का प्रयास कर रहे हैं।


अनुरोध पेलोड - या अधिक सटीक होने के लिए: एक HTTP अनुरोध का पेलोड बॉडी - आमतौर पर डेटा पोस्ट या पुट अनुरोध द्वारा भेजा जाता है। हेडर और HTTP अनुरोध के CRLF के बाद यह हिस्सा है।

Content-Type: application/json साथ एक अनुरोध Content-Type: application/json इस तरह दिख सकता है:

POST /some-path HTTP/1.1
Content-Type: application/json

{ "foo" : "bar", "name" : "John" }

यदि आप प्रति AJAX सबमिट करते हैं तो ब्राउज़र आपको दिखाता है कि यह पेलोड बॉडी के रूप में सबमिट कर रहा है। यह सब कुछ कर सकता है क्योंकि यह पता नहीं है कि डेटा कहां से आ रहा है।

यदि आप method="POST" और Content-Type: application/x-www-form-urlencoded साथ एक HTML-फ़ॉर्म सबमिट करते हैं Content-Type: application/x-www-form-urlencoded या Content-Type: multipart/form-data आपका अनुरोध इस तरह दिखेगा:

POST /some-path HTTP/1.1
Content-Type: application/x-www-form-urlencoded

foo=bar&name=John

इस मामले में फॉर्म-डेटा अनुरोध पेलोड है। यहां ब्राउज़र अधिक जानता है: यह जानता है कि बार सबमिट किए गए फॉर्म के इनपुट-फील्ड foo का मान है। और यह वही है जो आपको दिखा रहा है।

इसलिए, वे Content-Type में भिन्न होते हैं लेकिन डेटा जमा करने के तरीके में नहीं। दोनों मामलों में डेटा संदेश-शरीर में है। और क्रोम अलग करता है कि डेवलपर टूल्स में डेटा आपको कैसे प्रस्तुत किया जाता है।





google-chrome-devtools