2014-09-29 2 views
1

나는 일부 데이터를 사용하여 JQuery와에서 POST를 보내고,하지만 내 자바 스크립트를 통해 내가 얻을 :400 잘못된 요청

400 잘못된 요청 오류를 내가받을 포스터에서 그것을 시도

을 발사하지 REST

HTTP 상태 415 - 지원되지 않는 미디어 유형입니다. 요청 엔터티가 요청 된 방법에 대해 요청 된 리소스에서 지원하지 않는 형식이므로 서버가이 요청을 거부했습니다. 입니다

@XmlRootElement 
public class Data implements Serializable { 

    private String path; 
    private String rdf; 

     /** 
    * @return the path 
    */ 
    public String getPath() { 
     return path; 
    } 
    /** 
    * @param path the path to set 
    */ 
    public void setPath(String path) { 
     this.path = path; 
    } 
    /** 
    * @return the rdf 
    */ 
    public String getRdf() { 
     return rdf; 
    } 
    /** 
    * @param rdf the rdf to set 
    */ 
    public void setRdf(String rdf) { 
     this.rdf = rdf; 
    } 

중 하나가 말해 줄 수 : 여기

@POST 
@XmlElement(name = "data") 
@Path("/update") 
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
@Produces(MediaType.APPLICATION_JSON) 
public void update(Data data) { 
    ... 
} 

내 데이터 개체입니다 :

여기
function doUpdate(path, rdf) 
     { 
      var encodedRdf = base64_encode(rdf); 
      var data = {"path": path, "rdf": encodedRdf}; 
      var sUrl = "http://localhost:8080/browsing/services/RDF/update"; 
      $.ajax({ 
       type: "POST", 
       url: sUrl, 
       contentType: "application/json", 
       data: data, 
       dataType: "json", 
       async: false, 
       success: function parse(resp, status, xhr) { 
        $("#message").html("STATUS: " + xhr.status + " " + xhr.statusText + "\n" + resp); 
        $("#message").hide(); 
        $("#login_message").html("<font color='green'><b>Record succesfully updated</b></font>d"); 
       }, 
       error: function(resp, status, xhr){ 
        $("#message").html("ERROR: " + resp.status + " " + resp.statusText + "\n" + xhr); 
        $("#message").show(); 
       } 
      }); 
     } 

내 REST 자원이다 : 여기

내 JQuery와있다 제발 제발?

감사합니다.

답변

0

다음과 같이 JSON을 작성하고 문자열을 해결하여 해결했습니다! 이 아무것도 변경되지 않습니다 추가

var data = {"path": path, "rdf": encodedRdf}; 
... 
data: JSON.stringify(data), 
+0

나는 당신이 당신의 의도에 설명을 추가 할 때 그것이 더 많은 방문자들과 더 많은 방문자들에게 더 도움이 될 것이라고 생각한다. – reporter

+0

죄송합니다. 끝냈다! – mzereba

0

web.xml에 다음 init 매개 변수가 있습니까?

<init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
</init-param> 
+0

는 {: 경로, "RDF": "경로"encodedRdf}는 JSON 개체 VAR 데이터 =을 만드는 moreclear하기 위해, 경로 및 encodedRdf 및 매개 변수로 전달됩니다. 나는 보통의 끈을 달면 발사를하고 제대로 작동합니다. – mzereba

+0

필드와 JSON.stringify를 설정하여 JSON 객체를 생성하면 해결되었습니다! – mzereba