我将以下 ajax 调用发送到我的 JBoss 服务器(使用 jQuery):
$.ajax({
type: "POST",
url: "http://localhost/services/v1/online/123/abc",
data: {
"status": 100
},
contentType: "text/xml; charset=\"UTF-8\"",
success: function(data, textStatus, jqXHR) { },
error: function( jqXHR, textStatus, errorThrown ) { },
dataType: "xml"
});
我的 Java 代码如下所示(@ApplicationPath 和 class-@Path 设置正确,因此触发了以下内容):
@POST
@Path("/{docId}/{secId}")
@Produces(MediaType.TEXT_XML)
public String getSectionAccess(@PathParam("docId") String docId,
@PathParam("secId") String secId,
@QueryParam("status") long timeInMS) {
System.out.println(timeInMS);
}
我的问题是 timeInMS 总是返回值 0。如果我使用 @GET 而不是 @POST 那么 timeInMS 等于 100 正如预期的那样。
我究竟做错了什么?
以下代码:
ResteasyProviderFactory.getContextData(HttpServletRequest.class).getParameter("status");
向我显示状态的结果是“100”(一个字符串,但可以转换为长整数)......为什么在使用@POST(或@PUT)时没有将值插入到timeInMS中?