0

我在html中有以下内容

<form name="myform" method="POST">
    <input type="text" id="products" name="products" />
</form>

function myForm() {
        var url = 'rest/products/details/';
        var formData = $("#myform").serializeArray();
        $.ajax({
        url: url,
        type: 'POST',
        contentType : "application/x-www-form-urlencoded",
        dataType: 'json',
            data: formData,
        success: function (data) {
            //callfunc(data);
        }
    });
}

在Java服务器端我有以下

@POST
@Path("/details")
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....

log.info("prod "+products); --> getting null

出于某种原因,即使我从 html 传递正确的值,产品也是 null。这可能是什么原因?

4

3 回答 3

1
function myForm() {
        var url = 'rest/products/details/';
        var formData = "products=asasa" ;
        $.ajax({
        url: url,
        type: 'POST',
        contentType : "application/x-www-form-urlencoded",
        dataType: 'json',
            data: formData,
        success: function (data) {
            //callfunc(data);
        }
    });
}

试试这个并删除 @consumes 注释。问题出在$("#myform").serializeArray()jquery的函数中。

于 2015-06-16T07:06:40.583 回答
0

尝试Consumes注释

@POST
@Path("/details")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....
于 2015-06-16T06:50:19.160 回答
0

问题相当愚蠢,我使用的是名称而不是 id,这导致所有表单元素在服务器端都为 null。我已更改为

<form id="myform" method="POST"> 它运作良好

然而 <form name="myform" method="POST">不起作用。

于 2015-06-16T07:40:43.693 回答