在HTTP DELETE请求中传递多个参数

时间:2017-01-22 15:15:45

标签: javascript angularjs

我想在DELETE HTTP请求中传递iddept字段,并在deleteData()内获取,但我在deleteData()中为id收到空}和dept

$http['delete']('webapi/Data/delete?' + cdata.id + "&&" + cdata.lineUp)

@DELETE()
@Path("/delete")
public String deleteData(@QueryParam("id") String id, @QueryParam("dept") String dept){

1 个答案:

答案 0 :(得分:2)

HTTP Delete不接受数据作为参数。

胜利

否则,我会像这样传递一个对象:

var cdata = {
   id: 2,
   lineUp: [...]
};

// won't work
$http.delete('webapi/Data/delete, cdata)
  .then(function(response) {
     console.log(response);
  })
  .then(function(error) {
     console.log(error);
  });

如果您想要真正 RESTful ,除了HTTP Delete之外,您不应该向id方法传递任何内容。

<强>基于REST

var cdata = {
   id: 2,
   lineUp: [...]
};

// RESTful
$http.delete('webapi/Data/delete/' + cdata.id)
  .then(function(response) {
     console.log(response);
  })
  .then(function(error) {
     console.log(error);
  });

但是,您可以使用HTTP Post作为解决方法。

解决方法

var cdata = {
   id: 2,
   lineUp: [...]
};

// workaround
$http.post('webapi/Data/delete, cdata)
  .then(function(response) {
     console.log(response);
  })
  .then(function(error) {
     console.log(error);
  });