无法获取Restangular remove()以发送没有正文的DELETE请求

问题描述 投票:1回答:2

我一直在研究一个webapp,它正在使用localhost。但是,在部署到实际站点后,任何DELETE请求都会收到400(错误请求)错误,响应“DELETE”请求可能不包含实体。查看请求,包含的有效负载是我正在尝试删除的对象的ID。我搜索并从Restangular开发人员Here找到了我的问题的解决方案:

RestangularProvider.setRequestInterceptor(function(elem, operation) {
   if (operation === "remove") {
      return undefined;
   } 
   return elem;
})

然而,这对我不起作用。我也尝试返回null而不是undefined,但请求仍然包含ID作为正文。我在if语句中放了一个console.log消息,它在删除请求响应之前显示,因此我可以告诉它正确捕获删除请求。这是我正在进行删除调用的示例:

$scope.delete = function() {
    Restangular.one('graph', $scope.model.id).remove().then(function() {
        $location.path('/');
    });
};

我无法弄清楚是什么导致正文被包含在请求中,以及为什么RequestInterceptor没有解决问题。任何帮助或指示是什么导致这将是伟大的。

restangular
2个回答
0
投票

你有什么看起来应该工作。您可以尝试使用addRequestInterceptor或addFullRequestInterceptor,而不是setRequestInterceptor。不推荐使用setRequestInterceptor,但它应该仍然有效。尝试切换它,让我知道这是否成功。


0
投票

addRequestInterceptor对我有用。

 RestangularProvider.addRequestInterceptor(function(elem, operation, what, url) {
            if (operation === "remove") {
                return null;
            }
            return elem;
        });
© www.soinside.com 2019 - 2024. All rights reserved.