Я звоню из jQGrid сервлету Guice со следующей привязкой:
@Produces({MediaType.APPLICATION_JSON})
@Path("/{param}")
public String getJson(@PathParam("param") String param) {
...
return return json.toString();
}
Запрашивая URL-адрес напрямую, я вижу JSON.Когда jqgrid выполняет запрос, я получаю метод 405, недопустимый ответ.Я уже видел это раньше, когда на возвращаемой странице не был установлен тип контента "text / json" (jqgrid здесь не очень гибок).
ЗДЕСЬ ЗАПРОС: Запрос значения ключа POST/ myapp / json / jqgrid / json ... HTTP / 1.1 x-запрашиваемый-с XMLHttpRequest Accept-Language en-us Referer http://localhost:8080/myapp/myPage... Принять приложение / json, текст / javascript, / Содержимое-Введите приложение / x-www-form-urlencoded Accept-Encoding gzip, дефлятируйте User-Agent Mozilla / 5.0 (совместимо; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0) Хост localhost: 8080 Длина содержимого 63 Длина соединения Keep-Alive Cache-Control no-cache
ЗДЕСЬ ОТВЕТ: Ответ значения ключа HTTP / 1.1 405 Метод не разрешен Сервер Apache-Coyote / 1.1 Разрешить GET, OPTIONS, HEAD Content-Type text / html; charset = utf-8 Content-Length 1034
Есть мысли о том, как заставить сервлет guice установить тип содержимого "text / json" и разрешить ответ?