2008-11-28 12 views
20

एचटीएमएल में, आप दो तरीकों से जीईटी अनुरोध का उपयोग कर एक पृष्ठ से दूसरे डेटा भेज सकते हैं:एक फॉर्म के माध्यम से एचटीएमएल में पोस्ट पैरामीटर पास करने का एकमात्र तरीका है?

http://www.example.com/somepage.php?data=1 

... या ...

<form action="somepage.php" method="get"> 
    <input type="hidden" name="data" value="1" /> 
    <input type="submit" value="Submit"> 
</form> 

हालांकि एक POST अनुरोध के साथ, मैंने केवल इस तरह के फॉर्म तत्वों के माध्यम से डेटा भेजा है:

<form action="somepage.php" method="post"> 
    <input type="hidden" name="data" value="1" /> 
    <input type="submit" value="Submit"> 
</form> 

अगर मेरे पास केवल एक पैरामीटर है, तो मैं POST का उपयोग करके किसी अन्य पृष्ठ पर भेजना चाहता हूं, क्या इसे फ़ॉर्म में लपेटने से कहीं आसान तरीका है?

उत्तर

30

ब्राउज़र से पोस्ट करने के लिए केवल दो तरीके हैं - एक फॉर्म, या Ajax अनुरोध।

7

केवल HTML का उपयोग करके, एक पोस्ट अनुरोध अनुरोध उत्पन्न करने का एकमात्र तरीका है। आप अन्य तरीकों से POST अनुरोध उत्पन्न करने के लिए सर्वर साइड स्क्रिप्टिंग/जावास्क्रिप्ट का उपयोग कर सकते हैं, लेकिन केवल सादे HTML के साथ करने के अन्य तरीकों से नहीं।

1

एचटीएमएल में केवल यह एक फॉर्म के साथ है।

लेकिन यदि आप अपने सर्वर पक्ष के साथ खेलते हैं तो आप इसे कर सकते हैं। यहां एक अच्छा आलेख है जो आपको दिखाता है कि Get to Change it to Post PHP के माध्यम से कैसे उपयोग करें। इसके लिए आपको fsockopen के साथ खेलने की आवश्यकता होगी ... ऐसा करने के लिए यह आपके पैरामीटर का उपयोग करेगा? Id = 1 & param = 2 ... और सर्वर पक्ष पर एक POST अनुरोध तैयार करेगा। एक बार यह सेटअप करने के बाद, यह सामान्य हो सकता है, लेकिन यह सबकुछ पहले सेट करने के लिए थोड़ा सा काम है।

+0

मुझे लगता है कि उनका इरादा पता पंक्ति पर पैरामीटर भेजने से बचने के लिए एक POST अनुरोध बनाना था .. जो आपकी विधि हार जाती है। –

+0

जब मैं अपना प्रश्न पढ़ता हूं तो मैं समझता हूं कि वह यूआरएल के भीतर सामान भेजना चाहता है, न कि फॉर्म के माध्यम से और सभी पोस्ट के माध्यम से आगे बढ़ना चाहता है ... लेकिन मैं गलत हो सकता हूं ... सवाल अस्पष्ट है ... वैसे भी जो मैं सुझाव देता हूं अगर मैं सुझाव देता हूं ओपी मैं जो सुझाव देता हूं वह करना चाहता हूं। –

4

जैसा कि आप पहले ही खोज चुके हैं, http प्रोटोकॉल पर डेटा संचारित करने के बिल्कुल दो तरीके हैं: GET या POSTHEAD नामक एक तीसरा प्रकार का HTTP संदेश भी है, लेकिन यह वास्तव में केवल इसे डाउनलोड किए बिना संसाधन के आसपास मेटा डेटा प्राप्त करने के लिए उपयोग किया जाता है और व्यापक रूप से कार्यान्वित नहीं किया जाता है।

जाहिर है GET और POST<form> टैग के उपयोग के माध्यम से आसानी से पहुंचा जा सकता है। GET नाम-मूल्य जोड़े (foo.html?a=1&b=2) के रूप में यूआरएल में मैन्युअल रूप से क्वेरी पैरामीटर जोड़कर आसानी से पहुंचा जा सकता है।

सौंदर्य और POST की जटिलता यह है कि नाम-मान युग्म HTTP अनुरोध हेडर जो नहीं है के रूप में आसानी से सुलभ के भीतर संलग्न वेब सर्वर पर ब्राउज़र से सूचित कर रहे हैं है। टैग का उपयोग किए बिना POST को पूरा करने का एकमात्र तरीका है HTTP अनुरोध शीर्षलेख मैन्युअल रूप से परिवर्तित करना और नाम-मूल्य जोड़े को अपने आप में जोड़ना।

यह भी ध्यान रखें कि एक HTTP सर्वर आंतरिक रूप से यह नहीं जानता कि कोई अनुरोध (GET या POST) मुख्य ब्राउज़र विंडो या AJAX कॉल से आया है। भले ही, वेब सर्वर अनुरोध पढ़ेगा, यह समझ जाएगा कि यह GET या POST अनुरोध है, नाम-मूल्य जोड़े को उपयुक्त के रूप में देखें, और एक प्रतिक्रिया उत्पन्न करें।

आप कैसे ठीक एक POST अनुरोध आप jmarshall.com/easy/http/ या शायद tcpipguide.com/free/t_HTTPRequestMessageFormat.htm पर जा सकते हैं प्रारूपित करना है अतिरिक्त विस्तार करना चाहते हैं। निश्चित संसाधन हमेशा W3C होता है, लेकिन कभी-कभी आरएफसी हमारे लिए केवल प्राणियों को पढ़ने के लिए भ्रमित हो सकता है।

0

आप हमेशा एक पृष्ठ पर एक जीईटी कर सकते हैं जिसमें सर्वर-साइड (या AJAX) तर्क शामिल है जो एक POST अनुरोध (उदा। GET /pageWhichCreatesAPost.py) बना देगा। बेशक बहुत गन्दा, लेकिन ऐसे मामले हो सकते हैं जहां इस तरह के काम के आसपास उपयोगी हो सकता है।

+0

यह वही है जो मैंने 1 घंटा पहले लिखा था: पी –