使用正文发送Restangular DELETE或customDELETE

alo*_*ser 2 rest angularjs restangular

当我点击api时:

我怎样才能点击api(不是来自角应用程序):

apiadress /端点/ IDNumber中/?PARAM =参数

使用DELETE,一切正常并且符合预期.但当我从Restangular这样做时:

Restangular.one("endpoint").customDELETE(idnumber,params)
Run Code Online (Sandbox Code Playgroud)

我从服务器得到这个回复:

"detail":"请求中不支持的媒体类型'text/plain; charset = UTF-8'."

看起来DELETE与服务器一起出现了一个BODY,我找不到如何强制一个空体.

(我在其他问题中看到了这个,所以我事先说,是的api在我的开发机器的不同端口,我有:

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

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

kds*_*kds 9

试试吧.

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
                           } 
                          );
Run Code Online (Sandbox Code Playgroud)


Tho*_*mas 5

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

尝试定义一个默认的内容类型标题,也应该由Restangular使用:

RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
Run Code Online (Sandbox Code Playgroud)