का उपयोग करते हुए अनुरोध बॉडी पैरामीटर को पहचान नहीं रहा है, शायद यह काम नहीं करना चाहिए, लेकिन कम से कम मैं समझना चाहता हूं कि क्यों। मैं PUT
शरीर में एक साधारण वैल = कुछवल गुजर रहा हूं लेकिन वसंत 400 Bad Request
भेजता है क्योंकि यह वैल पैरामीटर को पहचानने के लिए प्रतीत नहीं होता है।स्प्रिंगएमवीसी पुट
इसी तरह का अनुरोध POST
के साथ काम करता है। क्या यह हो सकता है SpringMVC पैरामीटर के लिए स्रोत के रूप में PUT
अनुरोध निकाय को पहचान नहीं रहा है?
Content=-Type
दोनों मामलों में एप्लिकेशन/एक्स-www-form-urlencoded के लिए सही ढंग से सेट किया गया है।
विधि है कि वसंत कॉल करने के लिए मना कर दिया यह है:
@RequestMapping(value = "config/{key}", method = RequestMethod.PUT)
@ResponseBody
public void configUpdateCreate(final Model model, @PathVariable final String key, @RequestParam final String val,
final HttpServletResponse response) throws IOException
{
//...
}
पूर्णता के लिए, यहाँ jQuery ajax कॉल है। मैं इसके साथ कुछ भी गलत नहीं देख सकता। क्लाइंट फ़ायरफ़ॉक्स 4 या क्रोम है, दोनों एक ही परिणाम दिखाते हैं।
$.ajax({
url:url,
type:'PUT',
data:'val=' + encodeURIComponent(configValue),
success: function(data) {...}
});
कोई विचार?
जब आप इसे POST में बदलते हैं तो यह काम करता है? –
आप एक विधि विधि में @ResponseBody के साथ विधि को एनोटेट क्यों करते हैं? उस एनोटेशन को इंगित करना है कि वापसी का प्रकार सीधे HTTP प्रतिक्रिया निकाय को लिखा जाना चाहिए। मुझे लगता है कि यह मामला नहीं है। आप इसे भी करने का प्रयास कर सकते हैं: डेटा: {'val', encodeURIComponent (configValue)}, – Javi
400 कोड के साथ वापस आने वाला त्रुटि संदेश क्या है? – skaffman