【发布时间】:2013-08-05 13:57:22
【问题描述】:
这看起来很简单,但我不知道为什么它不起作用。
我定义了 Jersey 服务:
@POST
public SomeObject createSomeObject(
@QueryParam("firstParam") String firstParam,
@QueryParam("secondParam") String secondParam)
{
// Does stuff, returns the object.
}
现在,如果我做一个简单的curl,它可以正常工作:
curl -X POST "http://localhost:8080/path/to/service?firstParam=Bleh&secondParam=Blah
但是,对于 Java 中的 firstParam 和 secondParam,以下结果为 null:
$.ajax({
url: '/path/to/service',
type: 'POST',
data: {
firstParam: 'Bleh',
secondParam: 'Blah'
},
success: doStuff,
error: eek
});
这看起来非常简单。我觉得他们应该表现得完全一样。我错过了什么?我尝试过的事情(但似乎没有必要):
- 将
contentType: 'application/x-www-form-urlencoded'添加到ajax调用中。 - 将
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)添加到 Jersey 服务。 - 用
JSON.stringify包装数据对象(我知道在contentType: 'json'时我需要这样做,但不应该在这里。
我知道我可以自己编写 URL 参数并将它们填充到 URL 中,但这似乎不优雅,我不应该这样做。
【问题讨论】: