easyXDM を使用して Web アプリケーションから独自の Web サービス (Java Play 2.0.3) を呼び出そうとしています。
これはクライアント側(Web)の私のコードです:
var formValues = {
email: $('#editUserEmail').val(),
first_name: $('#editUserFirstName').val(),
last_name: $('#editUserLastName').val()
};
this.xhr.request({
url: "http://restserver.dev:9000/users/" + this.model.get('id'),
method: "PUT",
data: formValues
}, function(response){
console.log(response.data);
var jsonResponse = JSON.parse(response.data);
if (jsonResponse.status == 'success'){
alert("saved successfully");
}
});
サーバー(Java)のコードは次のとおりです。
final Map<String, String[]> values = request().body()
.asFormUrlEncoded();
// validating
if (values.containsKey("first_name"))
db_user.first_name = values.get("first_name")[0];
if (values.containsKey("last_name"))
db_user.last_name = values.get("last_name")[0];
if (values.containsKey("email"))
db_user.email = values.get("email")[0];
POST メソッドでは問題なく動作しますが、PUT メソッドを使用しようとすると、サーバーが PUT リクエストの本文データを取得できません (値が null です)。同じコードで POST に変更すると、正常に動作します。クライアント側またはサーバー側で何か間違ったことをしましたか?
ありがとう!