2011-08-03 9 views
16

Rfc2616 सूचीबद्ध करता है कई तरीके के अलावा प्राप्त और पोस्ट, जैसे, कहते हैं, हटाएँ, एचटीएमएल रूपों में डाल आदि विधि क्षेत्र है, हालांकि, केवल निर्दिष्ट GET या POST करने की अनुमति दी जा रहा है।किसी लिंक या फ़ॉर्म में DELETE विधि निर्दिष्ट कैसे करें?

क्या एक HTML पृष्ठ में कोई लिंक या फ़ॉर्म बनाना संभव है जो अनुरोध विधि का उपयोग करता है जो प्राप्त या पोस्ट नहीं है?

+1

है Http://stackoverflow.com/questions/165779/are-the-put-delete-head-etc-methods- उपलब्ध-in-most-web-browsers – Caps

+2

सुझाए गए लिंक का पालन करने के बाद, मेरा मानना ​​है कि निश्चित उत्तर होगा: किसी भी चीज का उपयोग करके जीईटी और पोस्ट स्क्रिप्टिंग के बिना एचटीएमएल पेज से संभव नहीं है। यद्यपि एचटीएमएल 5 ने थोड़ी देर के लिए फॉर्म में पुट और डिलीट की अनुमति दी, लेकिन वे [हटाए गए] (http://goo.gl/8EuZk) थे। –

उत्तर

10

आप निश्चित रूप से एक लिंक नहीं बना सकते हैं जो GET के अलावा कुछ भी उपयोग करता है। चूंकि एचटीएमएल शुरू हुआ, लिंक बेवकूफ और साइड इफेक्ट्स से मुक्त होने के लिए बने हैं।

फॉर्म और XMLHTTPRequests के लिए, कैप्स 'लिंक देखने के लिए जगह है: Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

+0

एकमात्र समस्या है कि डेटा-विधि attrib के साथ मेरे लिंक (रेल से आ रहा है, एक त्रुटि थी ..) पोस्ट कर रहे हैं! कम से कम एफएफ, क्रोम और आईई के साथ ... – halfbit

+0

@ हॉल्बिट: यह [कुछ जावास्क्रिप्ट जो रेल शामिल हैं] के कारण है (http://stackoverflow.com/questions/2809200/how-does-rails-3s-data-method- हटाना-नीचा-शान से)। मैं नम्रता से सुझाव दूंगा कि लिंक को HTTP GET के अलावा कुछ भी करने के लिए लिंक करना एक भयानक विचार है, खासकर जावास्क्रिप्ट के साथ। –

+0

ओह, हाँ, मैंने पाया कि पहले से ही (मुझ पर शर्म आती है)। मैं अपनी टिप्पणी को हटाने के लिए भूल गया, क्योंकि झूठी। फिर से sry – halfbit

-4

सिर्फ एक डाटा-विधि विशेषता जोड़ने, <a data-method='put' href='whatever'>link</a>

+2

क्या आप किसी भी प्रकार के दस्तावेज से लिंक कर सकते हैं कि यह सही है? – Jarl

+0

डाउनवॉटेड क्योंकि यह उत्तर बहुत अस्पष्ट है और दी गई जानकारी के आधार पर, यह गलत है। मुझे यकीन नहीं है कि यह उच्चतम संख्या में अपवॉट कैसे प्राप्त किया। – Simon

+0

शायद यह अस्पष्ट है, लेकिन वास्तव में यह सही है, और इसे वोट प्राप्त करना चाहिए। उपर्युक्त प्रश्न के लिए, इसका उपयोग इस तरह किया जा सकता है: 'DeleteMe' – Aleks

2

यह एक लिंक बनाने या हटाने विधि के साथ बनाने के लिए संभव नहीं है।

कई वेब ढांचे PUT और DELETE को संभालने के लिए "_method" नामक एक छिपी हुई इनपुट बनाते हैं। RestfulizerJs

आप एक नज़र यहाँ ले जा सकते हैं: https://github.com/Ifnot/RestfulizerJs

12

कि सामने के छोर पर कोणीय उपयोग कर रहा था एक रेल अनुप्रयोग के लिए यह पता लगाने की कोशिश कर रहा था

मैं एक प्लगइन के लिए स्वचालित रूप से रूपों के लिए लिंक कन्वर्ट बनाया ; इन कि पर्यावरण के लिए काम करने के लिए लगता है:

<a data-confirm="Are you sure?" data-method="delete" href="/link-to-resource" rel="nofollow">Delete</a> 

संपादित करें: बस हर कोई एक सिर देने के लिए, मुझे लगता है कि आप अभी भी इस काम करने के लिए jQuery की आवश्यकता है। मैंने jQuery हटा दिया और यह काम करना बंद कर दिया; मैंने इसे वापस रखा और यह काम करना शुरू कर दिया।

+0

नहीं है यह व्यवहार jquery_ujs से आता है, जो jquery-rails का हिस्सा है। अविभाज्य जावा स्क्रिप्ट। यह डेटा भी करता है: {पुष्टि: 'क्या आप?'} व्यवहार। –

6

डिफ़ॉल्ट रूप से, नहीं वहाँ यह करने के लिए कोई रास्ता नहीं है। लिंक always perform GETs, forms can use GETs or POSTs

उसने कहा, एक छोटी जावास्क्रिप्ट के साथ, यह संभव है। जो लिंक करने के लिए एक data-method विशेषता जोड़ देगा सहायकों के साथ उदाहरण के जहाजों के लिए रेल। रेल-UJS एक jQuery पुस्तकालय है कि पारदर्शी रूप से इन लिंक पर क्लिक अवरोधन जाएगा, और एक फार्म के सामान्य HTTP विधि अधिभावी के लिए इस्तेमाल एक _method पैरामीटर के साथ प्रस्तुत गति प्रदान करता है। अंत में एक _method पैरामीटर वाला अनुरोधों को रोक देगा, और _method में मूल्य के साथ अनुरोध विधि के ऊपर लिख रैक।

अन्य व्यवस्थाएं कोई संदेह नहीं है एक समान पैटर्न का पालन करें।

यदि आप और भी विवरण चाहते हैं, तो मैंने यह बताया है कि Rails, Rails-UJS, and Rack सभी एक साथ काम करने के लिए एक साथ काम करते हैं।

यह जानना अच्छा है कि आपके पुस्तकालय कैसे काम करते हैं।

+0

आपका लिंक लोकहोस्ट वेबसाइट पर जाता है। क्या आप ऑनलाइन लेख से लिंक कर सकते हैं? –

+0

http://www.monkeyandcrow.com/blog/reading_rails_http_delete_with_a_link/ – dtburgess

1

@Ifnot प्लगइन महान है, लेकिन मैं $.ajax बजाय समारोह hidden रूपों जोड़कर के आधार पर एक एक बनाया!यहाँ एक DELETE अनुरोध

एचटीएमएल

<button class="delete" data-target="http://example.com/post/post-id/" data-method="DELETE" data-disabled="true">Delete Article</button> 

के लिए एक सरल उदाहरण जावास्क्रिप्ट

$(".delete").restintag(optionsObj, function(data) { 
    console.log(data); 
}, 
function(error) { 
    console.log(error); 
}); 

https://github.com/KhaledElAnsari/RESTInTag/

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