2016-08-09 6 views
-1

は、私はこのようなPOSTメソッドを持っているJavaのRESTfulなサービスを持っているmehotd取得:私はGETメソッドの作業罰金とAJAXからそれを呼び出すが、RESTfulなサービスは、POSTでnull値が

@POST 
@Path("/vote") 
@Produces("application/json;charset=utf-8") 
public Response Vote(@QueryParam("token") String token, @QueryParam("param1") float param1, @QueryParam("param2") float param2 @QueryParam("param3") float param3... 

私が電話をしようとした場合POSTではすべての値がnullになっています。

私はそのような呼び出しやっている:

$.ajax({ 
    url: "http://localhost:8080/rService/service/vote", 
    data: "token=" + readCookie("Session") + "&param1=" + document.getElementById("param1").value + "&param2=" + document.getElementById("param2").value + "&param3=" + document.getElementById("param3"), 
    dataType: 'text', 
    async: false, 
    type: "POST" 
    }); 

を、私は、デバッガでサービスに行けば、私はすべての変数は、(フロートまたは0)はnullであるか見ることができます

です問題?どのように私はそれを解決する?

ありがとうございます。

答えて

0

POSTを使用する場合は、POST本体を含む1つのパラメータのみが必要です。 本文は、システム内の既存のエンティティに対応するJSONドキュメントである必要があります。そのため、jax-rs実装ではアンマーシャリングできます。

また、@QueryParamはPOSTメソッドには適用されません。

だから、あなたの方法は次のようになります。

@POST 
@Path("/vote") 
@Produces("application/json;charset=utf-8") 
public Response Vote(Vote vote) 

そして、あなたの投票の対象は、トークンとparams1などの関連するすべてのフィールドが含まれている必要があり、params2など

関連する問題