我正在使用Java中的REST,并且在使用@FormParam时遇到了问题。
现在我有一个功能界面:
@POST
@Path("/naming/{name}/{age}")
public String populatePerson(@PathParam("name") String name, @PathParam("age") String age, @FormParam("hobby") String hobby) throws Exception;
,实施是
@Override
public String populatePerson(String name, String age, String hobby) throws JMSException {
return "Made person " + name + " with age: " + age + " and hobby" + hobby;
}
我创建了一个textarea表单,其中的爱好将从
中读取<form action="javascript:submitInfo();">
<textarea id="hobby" name="hobby" placeholder="Enter hobby Here" style="height:300px; width:500px"></textarea>
<button id="submitButton" data-dojo-type="dijit/form/Button">Submit</button>
</form>
我的submitInfo()函数是
<script>
function submitInfo() {
var xmlHttp = new XMLHttpRequest();
var data = new FormData();
var hobbyValue = hobby.value;
data.append("hobby", hobbyValue);
xmlHttp.open("POST", "rest/processor/naming/" + name + "/" + age, false);
xmlHttp.send(data);
alert(xmlHttp.responseText);
}
</script>
由于某种原因,当我收到回复时,它无法识别我在表单中输入的爱好值。它会返回正确的名称和年龄@PathParam。爱好又回来了。
知道为什么吗?
答案 0 :(得分:0)
也许你错过了一个http标头。 尝试添加application / x-www-form-urlencoded:
http.setRequestHeader(“Content-type”,“application / x-www-form-urlencoded”);