当我的网页尝试调用DELETE-rest方法时,出现了前端问题。但是,有趣的是,当我使用SoapUI进行SAME调用时,后端可以完美地工作。
这是我的函数调用:

$scope.remove = function (id) {
     var delUrl = "http://localhost:8080/secure/regulations/" + id;
     $http.delete(delUrl);
}

Web服务就像安全/法规/ {id}一样,不给出任何答案(只需执行删除操作),正如我所说,SoapUI调用的作用就像一个 super 按钮,而浏览器中的此功能却不起作用。在标题下方:
General
Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/secure/regulations/4
Request Method:DELETE
Status Code:422 Unprocessable Entity

Response Headers
Content-Type:application/json;charset=UTF-8
Date:Tue, 23 Jun 2015 14:28:00 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked

Request Headers
Accept:application/json, text/plain, *\/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:__ngDebug=true
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/secure/

深入研究后端的功能,当它对数据库执行get(id)时(在该点之前,id具有值),就会出现问题,但是我坚信如果SoapUI可以解决问题。
前端代码:S可能会遗漏某些内容

编辑:
在SoapUI中,原始请求如下:
DELETE http://localhost:8080/secure/regulations/5 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 0
Host: localhost:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

根本没有标题(在“标题”选项卡中),但是在“表示形式”中有一个空的媒体类型:application / json (自动创建)。

任何帮助都是由衷的感谢!

最佳答案

尝试将此调试详细版本与额外的 header (类似于SoapUI请求)一起使用:

$scope.remove = function (id) {
    var delUrl = "http://localhost:8080/secure/regulations/" + id;
    var _delete = {
         'method': 'DELETE',
         'url': delUrl,
         'headers': {
             'Content-Type': 'application/json'
         },
         'data': ""
    }

    $http(_delete)
        .success(function(){
            console.log("OK");
        })
        .error(function(data, status, headers, config){
            console.log(data);
            console.log(status);
            console.log(headers);
            console.log(config);
        });
}

关于angularjs - Angular $ http.delete返回错误422(无法处理的实体),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31006502/

10-13 05:45