Может быть, это не должно работать, но, по крайней мере, я хотел бы понять, почему. Я передаю простое значение val = somevalue в теле PUT
, но spring отправляет обратно 400 Bad Request
, поскольку он, похоже, не распознает параметр val.
Аналогичный запрос работает с POST
. Может ли SpringMVC не распознавать тело запроса PUT
как источник для параметров?
Content=-Type
корректно устанавливается в application/x-www-form-urlencoded в обоих случаях.
Метод, который spring отказывается вызывать, таков:
@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. Я не вижу ничего плохого в этом. Клиентом является Firefox 4 или Chrome, оба показывают тот же результат.
$.ajax({
url:url,
type:'PUT',
data:'val=' + encodeURIComponent(configValue),
success: function(data) {...}
});
Любые идеи?