Jqgrid Guice servlet 405错误:似乎未将内容类型设置为";text/json“;对于MediaType.APPLICATION\u JSON

Jqgrid Guice servlet 405错误:似乎未将内容类型设置为";text/json“;对于MediaType.APPLICATION\u JSON,jqgrid,guice,jackson,guice-servlet,Jqgrid,Guice,Jackson,Guice Servlet,我正在从jQGrid调用具有以下绑定的Guice servlet: @Produces({MediaType.APPLICATION_JSON}) @Path("/{param}") public String getJson(@PathParam("param") String param) { ... return return json.toString(); } 直接请求url,我可以看到JSON。当jqgrid执行请求时,我得到405 method not allow

我正在从jQGrid调用具有以下绑定的Guice servlet:

@Produces({MediaType.APPLICATION_JSON})
@Path("/{param}")
public String getJson(@PathParam("param") String param) {
    ...
    return return json.toString();
}
直接请求url,我可以看到JSON。当jqgrid执行请求时,我得到405 method not allowed响应。我以前见过这种情况,返回页面的内容类型没有设置为“text/json”(jqgrid在这里不是很灵活)

请求如下: 关键值 请求POST/myapp/json/jqgrid/json。。。HTTP/1.1 x-request-with-XMLHttpRequest 接受我们的语言 参考。。。 接受application/json、text/javascript、/ 内容类型应用程序/x-www-form-urlencoded 接受编码gzip,放气 用户代理Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0) 主机本地主机:8080 内容长度63 连接保持活动状态 缓存控制无缓存

以下是答复: 关键值 不允许响应HTTP/1.1 405方法 服务器ApacheCoote/1.1 允许获取、选项、头部 内容类型text/html;字符集=utf-8 内容长度1034


关于如何让guice servlet将内容类型设置为“text/json”并允许响应,您有什么想法吗?

这个问题已经解决了。我使用了@GET注释,jQGrid发布了一篇帖子。我换了@POST,它开始工作了。这可能会解决具有相关405错误的其他人的问题。

对于json响应,“text/json”是错误的
内容类型。正确的
内容类型是“application/json”。请参阅请求实际上是“接受应用程序/json”(请参阅上面我的请求输出)。问题是来自Guice servlet的响应返回为内容类型text/html;字符集=utf-8。在Guice中,我尝试了几个@products组合来获得application/json,但没有成功,尽管MediaType.application\u json应该生成正确的响应。