当方法类型为DELETE时,如何使用Ext.Ajax.request传递参数

时间:2012-12-19 13:11:42

标签: rest http jersey extjs4.1 http-delete

我正在尝试发送use Ext.Ajax.request方法来删除服务器上的一些数据。我的请求方法如下所示:

Ext.Ajax.request({
      url: '/myserver/restful/service/delete',
      method: 'DELETE',
      headers: {
        'Content-Type': 'application/json'
      },
      params: {
        userId: 12345
      }
});

在我的球衣服务器上,我写了如下所示:

@Path("/delete")
  @DELETE
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.APPLICATION_JSON)
  public Response deleteUser(final String userId) {
    System.out.println("user id = " + userId);
    return Response.ok().entity("success").build();
  }

此方法以下列格式打印出用户ID:

user id = userId=12345

所以我userId的期望值是12345,但它给了我userId=12345。因为我是球衣的新手,我现在无法决定做什么。

任何人都可以告诉我们出了什么问题吗?

2 个答案:

答案 0 :(得分:5)

不确定泽西岛出了什么问题,但是......如果你试图将DELETE与请求体一起使用,那么无论如何你都在错误的轨道上。别。 DELETE的唯一相关参数应该是它应用的请求URI。

答案 1 :(得分:2)

@Julian是正确的,你真的不应该使用HTTP DELETE动词的params。

试试这个:

@Path("/delete/{userId} 

然后在你的方法内:

@PathParam("userId") String userId

然后当你致电你的服务时,将你的网址更改为:delete/(userId)(没有parens)并删除params。