Może to nie działa, ale przynajmniej chciałbym zrozumieć dlaczego. Podaję prostą wartość val = somevalue w ciele PUT
, ale sprężyna odsyła z powrotem 400 Bad Request
, ponieważ nie rozpoznaje parametru val.SpringMVC nie rozpoznaje parametrów obiektu żądania, jeśli używasz PUT
Podobna próba działa z POST
. Czy może to być SpringMVC nie rozpoznaje ciała żądania PUT
jako źródła parametrów?
Content=-Type
jest poprawnie ustawiony na application/x-www-form-urlencoded w obu przypadkach.
Metoda że wiosna odmawia nazywają to:
@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
{
//...
}
Dla kompletności, tutaj jest wywołanie jquery ajax. Nie widzę w tym nic złego. Klient to Firefox 4 lub Chrome, oba mają taki sam wynik.
$.ajax({
url:url,
type:'PUT',
data:'val=' + encodeURIComponent(configValue),
success: function(data) {...}
});
Wszelkie pomysły?
czy to działa, gdy zmienisz go na POST? –
Dlaczego przypisuje się do metody metodę @ResponseBody w metodzie void? Ta adnotacja powinna wskazywać, że typ zwracany powinien być zapisany bezpośrednio w treści odpowiedzi HTTP. Myślę, że tak nie jest. Możesz spróbować zrobić to również: dane: {'val', encodeURIComponent (configValue)}, – Javi
Co to jest komunikat o błędzie, który wraca z kodem 400? – skaffman