2011-08-12 4 views
0
내가있는 jqGrid에서 전화를 만들고있어

을 위해 "텍스트/JSON"로 설정 콘텐츠 유형을 설정하지 않는 것 같다Guice 서블릿 (405) ERR : 다음 바인딩이있는 Guice 서블릿에 MediaType.APPLICATION_JSON

@Produces({MediaType.APPLICATION_JSON}) 
@Path("/{param}") 
public String getJson(@PathParam("param") String param) { 
    ... 
    return return json.toString(); 
} 

URL을 직접 요청하면 JSON을 볼 수 있습니다. jqgrid가 요청을 실행하면 405 메소드가 응답을 허용하지 않습니다. 반환되는 페이지의 Content-type이 "text/json"(jqgrid는 매우 유연하지 않음)으로 설정되지 않은 경우 이전에이 문제가 발생했습니다. 여기

요청입니다 : 키 값 요청 POST/MyApp를/JSON /있는 jqGrid/JSON ... HTTP/1.1 X는-요청-으로 수락 - 언어 EN-US 리퍼러 http://localhost:8080/myapp/myPage ... XMLHttpRequest의 MSIE 9.0; 윈도우 NT 6.1; 사용자 에이전트 모질라/5.0 (호환을 수축, / 콘텐츠 유형 응용 프로그램/ 수락 - 인코딩 GZIP을 x-www-form-urlencoded로, 응용 프로그램/JSON, 텍스트/자바 스크립트를 허용 WOW64를 트라이던트/5.0) 호스트 로컬 호스트 : 8080 콘텐츠 길이 63 연결 유지 GET, 옵션, HEAD 컨텐츠 유형 text/html과 키 값 응답 HTTP/ 서버 아파치 - 코요테/1.1 허용 허용하지 않음 1.1 405 방법 : 전자 캐시 제어 노 캐시 여기

는 응답입니다 ; charset = utf-8 콘텐츠 길이 1034

guice 서블릿에서 Content-type을 "text/json"으로 설정하고 응답을 허용하는 방법에 대한 의견이 있으십니까?

+0

"text/json"은 JSON 응답의 'Content-type'이 잘못되었습니다. 올바른'Content-type'은 "application/json"입니다. 참조 [여기] (http://stackoverflow.com/questions/477816/the-right-json-content-type/477819#477819) – Oleg

+0

요청은 실제로 "Accept application/json"입니다 (위의 내 요청 출력 참조). 문제는 Guice 서블릿의 응답이 Content-Type text/html; charset = utf-8로 되돌아 오는 것입니다. Guice에서는 MediaType.APPLICATION_JSON이 올바른 응답을 생성해야하지만 여러 가지 @Produces 조합을 사용하여 응용 프로그램/json을 얻을 수있었습니다. – JStark

답변

0

이 문제가 해결되었습니다. @GET 주석을 사용하고 있고 jQGrid가 게시물을 발행하고있었습니다. @POST가 바뀌었고 작동이 시작되었습니다. 이것은 관련 405 오류를 가진 다른 사람들의 문제를 해결할 수 있습니다.