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

问题描述:

我试图发送使用Ext.Ajax.request方法来删除服务器上的一些数据。我请求方法看起来如下:如何在方法类型为DELETE时使用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

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

任何人都可以请告诉出了什么问题?

+1

我解决了我的问题,将userId附加到url本身。现在我的url部分看起来像'/ myserver/restful/service/delete?userId = 12345' – Shekhar

不知道泽西岛发生了什么问题,但是......如果您尝试将DELETE与请求主体一起使用,那么您仍然处于错误的轨道上。别。 DELETE的唯一相关参数应该是它所应用的请求URI。

@Julian是正确的,你真的不应该有一个HTTP DELETE动词params。当你打电话给你的服务将网址变更为

@PathParam("userId") String userId 

然后:你的方法里面

@Path("/delete/{userId} 

然后:

试试这个delete/(userId)(不含括号),取下PARAMS。