Ошибка разбора Json при получении действия контроллера grails с пустым телом - PullRequest
2 голосов
/ 06 апреля 2011

Когда я отправляю запрос GET с пустым телом на мой контроллер grails 1.3.7 с использованием расширения файла .json (например, http://localhost:8080/myapp/mycontroller/myaction.json), я получаю исключение при разборе запроса, и кажется, что grails пытается разобратьмое пустое тело в JSON. Если я отправлю тот же запрос к тому же действию, но без расширения .json, у меня не будет никакой ошибки.

Как я могу избавиться от этой ошибки?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Моя лучшая попытка в этом заключается в том, чтобы в отображении URL были отдельные предложения и чтобы для запросов GETtish parseRequest было установлено на false, т.е.

static mappings = {
  "/$controller/show/$id?"(parseRequest:false,action:'show'){
        constraints {
            // apply constraints here
        }
    }

  "/$controller/$action?/$id?"(parseRequest:true){
        constraints {
            // apply constraints here
        }
    }

(Да, это все еще происходит в 2.0.0 RC1)

0 голосов
/ 08 апреля 2011

Есть ли в вашем контроллере действие, которое выглядит следующим образом:

def myaction.json()

, если нет, то вы отправляете данные для несуществующего действия.если вы пытаетесь разобрать JSON, тогда используйте grails.converters по этому вопросу:

import grails.converters

def jsonData = JSON.parse(params)

также этот туто может помочь: http://www.ibm.com/developerworks/java/library/j-grails11188/index.html

...