Java JAX-RS の REST サーバーと HTML ページがあります。
メソッドを使用できるように、JSON 配列、ユーザー名、accountID xmlhttp
をすべて 1 つの大きな文字列にして、POST 要求を介して HTML ページから送信したいと考えていますxmthttp.send()
。
HTML 送信コードは次のとおりです。
function sendData() {
var req = createRequest();
var postUrl = "rest/hello/treeData";
var dsdata = $("#treeview").data("kendoTreeView").dataSource.data();
var accID = "onthespot";
var username = "alex";
req.open("post", postUrl, true);
req.setRequestHeader("Content-type","text/plain");
req.send("data=" + JSON.stringify(dsdata) + "&username=" + username + "&accID=" + accID);
req.onreadystatechange = function() {
if (req.readyState != 4) {
return;
}
if (req.status != 200) {
alert("Error: " + req.status);
return;
}
alert("Sent Data Status: " + req.responseText);
}
}
サーバー JAX-RS コードは次のとおりです。
@Path("/treeData")
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String storeTreeData(
@QueryParam("data") String data,
@QueryParam("username") String username,
@QueryParam("accID") String accID) {
System.out.println("Data= " + data + "\nAccID= " + accID + "\nUsername= " + username);
return "Done";
}
問題は、すべての変数が null として出力されることです。関数は、、変数をstoreTreeData
見つけて保存する必要があります。そうではありませんか?data
username
accID
@QueryParam
ここで何が問題なのか知っている人はいますか?
PS: xmlhttp リクエストは正しく初期化され、接続は確立されますが、パラメーターはサーバーに渡されません。