这看起来很简单,但我不知道为什么它不起作用。
我定义了 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
但是,null
Java 中 firstParam 和 secondParam 的结果如下:
$.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)
到泽西岛服务。 - 用
JSON.stringify
(我知道我需要在 时这样做contentType: 'json'
,但不应该在这里。
我知道我可以自己编写 URL 参数并将它们填充到 URL 中,但这似乎不优雅,我不应该这样做。