2010-11-04 37 views
7

स्प्रिंग प्रलेखन here के अनुसार:अनुरोध 'POST' समर्थित नहीं

While HTTP defines these four methods, HTML only supports two: GET and POST. Fortunately, there are two possible workarounds: you can either use JavaScript to do your PUT or DELETE, or simply do a POST with the 'real' method as an additional parameter (modeled as a hidden input field in an HTML form).

वे बाद किया है, और अगले वसंत MVC फार्म टैग के साथ प्राप्त किया जा सकता:

<form:form method="delete"> 
    <input type="submit" value="Delete"/> 
</form:form> 

समस्या यह है कि जब मैं 'हटाएं' पर क्लिक करता हूं तो मेरा पृष्ठ निम्न त्रुटि फेंकता है:

HTTP Status 405 - Request method 'POST' not supported 

I ch org.springframework.web की डिबग स्तर डिबग करने के लिए anged और निम्न संदेश मिला:

DEBUG AnnotationMethodHandlerExceptionResolver - Resolving exception from handler [[email protected]]: 
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 

मेरे द्वारा हटाए जाने विधि के साथ RestClient का इस्तेमाल किया और विधि के रूप में उम्मीद कहा जाता है। मुझसे यहां क्या गलत हो रहा है?

+0

मैं एक पैरामीटर RestClient का उपयोग कर के रूप में पोस्ट करने की कोशिश की है और एक स्थिति कोड लौटाया: अनुमति नहीं 405 विधि। समस्या कहां हो सकती है? – Joopiter

+0

क्या आप अपना कंट्रोलर पोस्ट कर सकते हैं? – hisdrewness

+0

@hisdrewness हाँ मैं कर सकता हूं, लेकिन मुझे नहीं लगता कि समस्या नियंत्रक के यूआरएल-मैपिंग में है क्योंकि RestClient का उपयोग ठीक है। – Joopiter

उत्तर

5

आप अपने web.xml में HiddenHttpMethodFilter कॉन्फ़िगर करने के लिए

विवरण here पाया जा सकता है की जरूरत है:

+0

मैंने फ़िल्टर को कॉन्फ़िगर किया और स्प्रिंग एमवीसी डिस्पैचर के को रखने के लिए फ़िल्टर-मैपिंग रखा, लेकिन अभी भी काम नहीं किया। कोई अन्य सुझाव? – Joopiter

+0

ने को * बदल दिया और यह ठीक काम किया। ऐसा लगता है कि urlrewrite का उपयोग समस्या का हिस्सा है क्योंकि जब मैंने ऐप/* को आजमाया है तो यह फ़िल्टर urlrewrite फ़िल्टर से पहले मान्य हो जाता है। धन्यवाद maximdim! – Joopiter

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