2011-12-06 15 views
17

मुझे यकीन है कि जवाब 'नहीं' होगा, लेकिन मैं वैसे भी पूछना चाहता था कि परेशान है कि मुझे कुछ याद आया है।एचटीएमएल एंकर टैग के साथ पोस्ट विधि का उपयोग

हर कोई GET विधि के उपयोग से एक है कि एक लंगर टैग में एक पृष्ठ के लिए पास डेटा जानता है:

अगर वहाँ एक ही बात करने के लिए एक रास्ता नहीं था क्या मैं सोच रहा हूँ, लेकिन उपयोग इसके बजाय POST विधि?

ऐसा करने का मेरा उद्देश्य यूआरएल को द्वारा साफ करने के लिए यूआरएल को साफ रखना है, जिसे उन्हें देखने की आवश्यकता नहीं है।

इसमें सुरक्षा चिंताओं से कोई लेना-देना नहीं है क्योंकि मुझे पहले से ही पता है कि डेटा पास होने के तरीके होंगे।

यदि उत्तर वास्तव में नहीं है, तो यूआरएल को साफ रखने की इच्छा होने पर लोग डेटा पास करने के लिए किस तरीके का उपयोग करते हैं? कुकीज़? कुछ और?

और कैसे परिदृश्यों से निपटने के लिए जब URL लंबाई अनुमेय GET अनुरोध लंबाई से अधिक है

मैं इस मुद्दे का सामना करना पड़ रहा है, जबकि छँटाई/displaytag साथ पृष्ठांकन को लागू करने, सभी अनुरोध पैरामीटर प्रकार/पृष्ठांकन URL में जोड़कर कर रहे हैं जो जीईटी अनुरोध की स्वीकार्य लंबाई अधिक है।

उत्तर

31

आप कुछ इस तरह कर सकता है:

<form id="myform" method="post" action="target.html"> 
    <input type="hidden" name="name" value="value" /> 
    <a onclick="document.getElementById('myform').submit();">click here</a> 
</form> 
+0

यह कोशिश की लेकिन यह हमेशा क्रोम में एक जीईटी कर रहा है। कोई विचार क्यों? –

+6
+0

दुर्भाग्य से '

'की उपस्थिति लेआउट को प्रभावित करती है। पूरी तरह छुपा हुआ कुछ पसंद करेंगे। –

0

आप <a> टैग की ऑनक्लिक घटना के दौरान एक अस्थायी रूप बना सकते हैं और सबमिट कर सकते हैं।

1

आप जावास्क्रिप्ट का उपयोग कर सकते हैं। लिंक पर क्लिक करें form.submit

लैंगी यूआरएल से निपटने का एकमात्र तरीका यह है कि इसके बजाय POST का उपयोग करें।

4

यह व्यवहार टैग पुस्तकालय प्रदर्शित करने के लिए विशिष्ट है। यह आसानी से बुकमार्क करने योग्य खोज परिणामों की अनुमति देता है। यदि आप वास्तव में POST का उपयोग करने के लिए इसे बदलने का इरादा रखते हैं, तो आपको लिंक टैग लाइब्रेरी को फिर से लिखना होगा या लिंक में हेरफेर करने के लिए कुछ jQuery लाने होंगे।

आपके प्रश्नों के अवशेष कहीं भी फोड़े नहीं हैं। यदि आप GET (idempotent अनुरोध, बुकमार्क करने योग्य URL, searchbot-crawable URL, आदि) चाहते हैं, तो GET का उपयोग करें। यदि आप POST (गैर-idempotent अनुरोध, गैर-बुकमार्क करने योग्य यूआरएल, गैर क्रॉल करने योग्य यूआरएल, आदि) चाहते हैं, तो POST का उपयोग करें।

आमतौर पर, POST अनिवार्य है जब अनुरोध सर्वर में डेटा संशोधित कर सकता है। एसक्यूएल INSERT, UPDATE, DELETE इत्यादि के बारे में सोचें। आप निश्चित रूप से इस तरह के अनुरोध प्राप्त नहीं करेंगे। कल्पना कीजिए कि आपके पास सभी "पंक्तियों को हटाएं" लिंक के साथ एक टेबल है जो प्राप्त करता है और फिर एक खोजबॉट आता है ...

संबंधित मुद्दे