Rest 发送带正文的重新启动的删除或自定义删除

Rest 发送带正文的重新启动的删除或自定义删除,rest,angularjs,restangular,Rest,Angularjs,Restangular,当我点击api时: 我如何使用以下工具点击api(不是从angular应用程序): apiadress/endpoint/idnumber/?参数=参数 使用DELETE,一切正常,正如预期的那样。 但当我从Restanglar这样做时: Restangular.one("endpoint").customDELETE(idnumber,params) 我从服务器获得以下响应: “详细信息”:“请求中不支持的媒体类型”text/plain;charset=UTF-8“ 看起来删除操作将向服务器

当我点击api时:

我如何使用以下工具点击api(不是从angular应用程序):

apiadress/endpoint/idnumber/?参数=参数

使用DELETE,一切正常,正如预期的那样。 但当我从Restanglar这样做时:

Restangular.one("endpoint").customDELETE(idnumber,params)
我从服务器获得以下响应:

“详细信息”:“请求中不支持的媒体类型”text/plain;charset=UTF-8“

看起来删除操作将向服务器发送一个正文,我找不到如何强制执行空正文

(我在其他问题中看到了这一点,所以我会提前说,是的,api位于我的开发机器的另一个端口中,我有:

config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
    ])

我喜欢Restanglar,但这个问题一直困扰着我。谢谢!

你的问题是内容类型,而不是请求中没有正文。(至少我从你的问题中读到了这一点。)

尝试定义Restanglar也应使用的默认内容类型标题:

RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
试试这个

var restMyService = Restangular.all("MyService");
restMyService.customDELETE("myPath",{pramOne: $scope.pramOne},
                            {'Content-Type': 'application/json'},
                             idnumber)
                          .then(function(res){
                               //To DO - Success
                           }, 
                           function errorCallback() {
                               //TODO Error Handle
                           } 
                          );

如果要使用customDelete添加请求负载,应使用以下命令:

Restangular.all('path').customDELETE('', {}, {}, payloadObject);
*这不会将有效负载参数添加到URL,此方法会将有效负载对象添加到主体