在JQuery中使用POST时,在REST资源上获取空值

时间:2014-09-28 08:46:04

标签: javascript jquery ajax rest post

我基本上使用POST请求传递数据,但REsource端的值始终为null。

这是我的JQuery:

function doUpdate(path, rdf)
        {
            var myObj = {"path": path, "rdf": rdf};
            var sUrl = "http://localhost:8080/browsing/services/RDF/update";
            $.ajax({
                type: "POST",
                url: sUrl,
                contentType: "application/json",
                data: myObj,
                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资源:

@POST
    @XmlElement(name = "contentbean")
    @Path("/update")
    @Produces(MediaType.APPLICATION_JSON)
    public void update(@QueryParam("path") String Path, @QueryParam("rdf") String Content) {
        ...     

    }

任何线索我做错了什么?

谢谢,

修改

另外在Firefox中使用Poster我在REST资源上看到空值,所以独立形成我的Javascript代码,似乎在REST方面存在一些错误。

2 个答案:

答案 0 :(得分:0)

删除 dataType:“json”,,它会正常工作

答案 1 :(得分:0)

您可以阅读以下内容

@POST
@XmlElement(name = "contentbean")
@Path("/update")
@Produces(MediaType.APPLICATION_JSON)
public void update(Contentbean contentbean) {

}

其中Contentbean是一个(POJO)类,根据你从ajax发送的数据用@XmlRootElement注释。