【问题标题】:Required request body is missing - HTTP Delete缺少所需的请求正文 - HTTP 删除
【发布时间】:2020-07-03 12:47:52
【问题描述】:

我正在尝试为我的端点传递可被 DELETE 请求使用的数据。我已经能够指定和调用端点,但我无法为所述端点传递正文。因此错误。我的代码包括以下内容:

$scope.handleDelete = function (data) {
        angular.forEach(data, function (value, key) {
            var deleteRequest = [];

            var deleteUrl = "api/student/" + value + "/work";
            let body = {
                "Id": key
            }
            deleteRequest.push(body);

            $log.info(JSON.stringify(deleteRequest))

            $http.delete(deleteUrl, {data: deleteRequest});
        });
    }

我的删除请求输出如下:

[{"id":"3"}]

我不确定我在 $http.delete 方面缺少什么才能使此功能正常工作。任何帮助将不胜感激,谢谢。

【问题讨论】:

标签: json angularjs


【解决方案1】:

鉴于您是如何形成 deleteRequest,我假设您的 API 端点需要一个包含对象的列表,基本上是 [{'id': key}]

$http.delete() 返回一个承诺,我认为你没有解决这个问题。

我在您的代码中添加了一些行,这可能会有所帮助。另外,请验证您的 API 端点是否接受了参数数据。

希望对你有帮助!

$scope.handleDelete = function (data) {
    angular.forEach(data, function (value, key) {
            var deleteRequest = [];

            var deleteUrl = "api/student/" + value + "/work";
            let body = {
                "Id": key
            }
            deleteRequest.push(body);

            $log.info(JSON.stringify(deleteRequest))
            
            $http.delete(deleteUrl, JSON.stringify(deleteRequest))
                 .then(function (response) {
                     if(response.data){
                         $log.info("Data Deleted Successfully!");
                     }
                }, function (response) {
                    // debug..Error occured
                    $log.info("Error Occured!");
                    $log.info(response.status);
                    $log.info(response.statusText);
                }
            );
     };
});
      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2017-08-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    相关资源
    最近更新 更多