これはとても簡単に思えますが、なぜ機能しないのかわかりません。
私は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 に詰め込むことができることはわかっていますが、それは洗練されていないように思われるので、そうする必要はありません。