Я пытаюсь получить параметры запроса, передаваемые по запросу PUT, в приложении на основе Grails.
Я использую следующий код клиента, чтобы сделать запрос:
$.ajax({
url: 'api/controllerName/anId',
type: 'PUT',
data: $('form').serialize()
})
со следующим отображением:
"/api/$controller/$id?" {
action = [ GET: "read", POST: "create", PUT: "update", DELETE: "delete"]
}
Но действие моего контроллера получает пустой список параметров, только со значением id. Я пытался поместить его содержимое в журналы и увидел только:
[id:anId, action:[GET:read, POST:create, PUT:update, DELETE:delete], controller:controllerName]
и request.getParameterNames()
возвращает пустой список значений.
Как я вижу из FireBug, запрос содержит эти параметры и имеет Content-Type как application/x-www-form-urlencoded; charset=UTF-8
Если я использую метод GET / POST - все работает как положено, я могу получить все переданные параметры.
Как мне получить доступ к переданным параметрам?
Обновление : Я только что понял, что PUT подразумевает передачу данных в виде JSON / XML в теле. Кстати, этот вопрос все еще актуален, на всякий случай