0

该函数deleteGroup()删除一个组,该方法的参数之一是groupDN。在前端,我使用 jquery 来指定一个 HTTP 删除请求。我之前是groupDN通过附加 URL 来发送的。我现在想尝试发送嵌入在HttpServletRequest. 前端和后端的代码如下。有人可以指导我在请求中发送/接收其他参数的正确方法吗?

前端

function removeGroup(groupDN) {

var deleteGroupDetails=new Object();
deleteGroupDetails.groupDN=groupDN;

jQuery.ajax({
    type : 'DELETE',
    url : 'api/groupService/deleteGroup,
    dataType : 'json',
    data : JSON.stringify(deleteGroupDetails),
    contentType : 'application/json',
    async: false,
    success : function(response) {
        utilDisplayMessage(response,"SUCCESS");
        window.location.reload();
    },
    error : function(obj, error, errormsg) {
        utilDisplayMessage(obj.responseText,"ERROR");
    }
});
}

deleteGroupDetails包含groupDN我认为可以与请求一起传递的参数。

Java中的后端

@DELETE
@Path("deleteGroup")
@Produces({MediaType.APPLICATION_JSON})
public String deleteGroup(@Context HttpServletRequest request) throws Exception {

String groupDN = request.getParameter("groupDN");
}
4

1 回答 1

0

不要将请求正文与 HTTPDELETE请求一起使用。您尝试做的不是 REST,而是通过 HTTP 的 RPC(远程过程调用)。不要这样做。

HTTPDELETE动词告诉服务器删除由 URI 标识的资源。所以如果你这样做

DELETE /path/to/resources/123

此 URI 标识的资源应被删除。

如果您想通过一个 请求删除服务器上的多个实体,DELETE请制作您的资源 URI 来表示一实体。例如:

DELETE /path/to/resources/?groupDN=foo

可能意味着:删除所有与过滤器匹配的实体groupDN=foo

于 2013-07-29T06:54:26.880 回答