如何在 Java 中获取 AJAX 值
How to get AJAX values in Java
我正在对我的服务器进行 ajax
调用,需要从中获取值。这是怎么做到的?
这是ajax
:
$.ajax({
type: "POST",
url: "http://localhost:8080/myapp/etc",
contentType: "application/json; charset=utf-8",
data: {"id": "1", "somekey": "somevalue"},
dataType: "json",
async: "true",
success: function(msg) {
alert("success " + msg);
},
error: function(msg) {
alert("error " + msg.toString());
}
});
我正在与 Restlets
合作,所以我假设这些值将在 Representation 实体中。这是方法:
@Post
public Representation doPost(Representation entity) {
String et = java.net.URLDecoder.decode(entity.getText(), "UTF-8");
System.out.println("the entity text " + et);
}
这会打印出 "id": "1", "somekey": "somevalue"
。但是我如何获得其他值呢? async
、url
等等?
async
是一个客户端指令,告诉客户端在处理 ajax 调用时不要阻塞。服务器不知道也不关心这个。
获取 URL 是可能的服务器端使用 String url = ((HttpServletRequest)request).getRequestURL().toString();
Restlet 会让您访问请求中发送的元素(URL、headers、有效负载),但不会访问 client-side 配置属性以构建请求。
您可以使用 Chome 控制台或 Firebug 等工具查看 AJAX 呼叫请求中发送的内容。
属性 async
未在请求中发送,因此您无法从服务器端获取它。对于 URL,您可以在服务器资源中使用此代码:
Reference reference = getRequest().getResourceRef();
String url = reference.toString();
有关更多详细信息,请查看 class Reference
: http://restlet.com/technical-resources/restlet-framework/javadocs/2.1/jee/api/org/restlet/data/Reference.html 的 javadoc。 class 允许您访问其中的每个元素(主机域、端口、路径...)。
希望对你有帮助,
蒂埃里
你可以这样做,使用 org.restlet.ext.json 扩展名:
@Post
public Representation handle(JsonObject jo) {
System.out.println(jo.getString("id"));
System.out.println(jo.getString("somekey"));
return ...;
}
我正在对我的服务器进行 ajax
调用,需要从中获取值。这是怎么做到的?
这是ajax
:
$.ajax({
type: "POST",
url: "http://localhost:8080/myapp/etc",
contentType: "application/json; charset=utf-8",
data: {"id": "1", "somekey": "somevalue"},
dataType: "json",
async: "true",
success: function(msg) {
alert("success " + msg);
},
error: function(msg) {
alert("error " + msg.toString());
}
});
我正在与 Restlets
合作,所以我假设这些值将在 Representation 实体中。这是方法:
@Post
public Representation doPost(Representation entity) {
String et = java.net.URLDecoder.decode(entity.getText(), "UTF-8");
System.out.println("the entity text " + et);
}
这会打印出 "id": "1", "somekey": "somevalue"
。但是我如何获得其他值呢? async
、url
等等?
async
是一个客户端指令,告诉客户端在处理 ajax 调用时不要阻塞。服务器不知道也不关心这个。
获取 URL 是可能的服务器端使用 String url = ((HttpServletRequest)request).getRequestURL().toString();
Restlet 会让您访问请求中发送的元素(URL、headers、有效负载),但不会访问 client-side 配置属性以构建请求。
您可以使用 Chome 控制台或 Firebug 等工具查看 AJAX 呼叫请求中发送的内容。
属性 async
未在请求中发送,因此您无法从服务器端获取它。对于 URL,您可以在服务器资源中使用此代码:
Reference reference = getRequest().getResourceRef();
String url = reference.toString();
有关更多详细信息,请查看 class Reference
: http://restlet.com/technical-resources/restlet-framework/javadocs/2.1/jee/api/org/restlet/data/Reference.html 的 javadoc。 class 允许您访问其中的每个元素(主机域、端口、路径...)。
希望对你有帮助, 蒂埃里
你可以这样做,使用 org.restlet.ext.json 扩展名:
@Post
public Representation handle(JsonObject jo) {
System.out.println(jo.getString("id"));
System.out.println(jo.getString("somekey"));
return ...;
}