如何在方法类型为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
所以我的期望值为userId
是12345
,但它给我userId=12345
。由于我是球衣新手,我无法决定现在应该做什么。
任何人都可以请告诉出了什么问题?
答
不知道泽西岛发生了什么问题,但是......如果您尝试将DELETE与请求主体一起使用,那么您仍然处于错误的轨道上。别。 DELETE的唯一相关参数应该是它所应用的请求URI。
答
@Julian是正确的,你真的不应该有一个HTTP DELETE动词params。当你打电话给你的服务将网址变更为
@PathParam("userId") String userId
然后:你的方法里面
@Path("/delete/{userId}
然后:
试试这个delete/(userId)
(不含括号),取下PARAMS。
我解决了我的问题,将userId附加到url本身。现在我的url部分看起来像'/ myserver/restful/service/delete?userId = 12345' – Shekhar