具有正文有效负载的angular $ resource PATCH请求

时间:2014-10-25 10:11:36

标签: angularjs resources patch

是否可以在请求正文中发送带有复杂对象的PATCH请求?以下工作正常,但它将对象作为url参数发送,而不是在请求正文中。

  //region - - - - - - - - - - - - - - - update with PATCH
        patch: function(url, obj, funcSuccess){

            // server call
            var resP =  resource(appConfigSvc.apiBaseUrl + url, obj, {
                'update': {
                    method:'PATCH',
                    headers: {'Content-Type': 'application/json' }
                }
            });
            var defer = q.defer();
            resP.update(
                function(data) {
                    defer.resolve(data);
                    if(funcSuccess){
                        funcSuccess(data);
                    }
                },
                function(response) {
                    //responseHandlerSvc.handleResponse(response);
                    defer.reject(response);
                });
            return defer.promise;
        },
        //endregion

WebApi在接受补丁请求正文时没有问题。 Postman还允许使用正文发送补丁请求。唯一的问题是Angular $ resource。

2 个答案:

答案 0 :(得分:1)

检查enter image description here。尽管patch和put方法无法发送有效负载(使用post时)

答案 1 :(得分:0)

我创建了这个方法,使用$ http发送我需要的任何请求。很好很简单..

function send(method, url, obj, params){

    var deferred = $q.defer();
    var promise = http(
        {
            method:method,
            url: url,
            data:obj,
            headers:{'Content-Type':'application/json', 'Accept':'application/json'},
            params:params
        })
        .success(function(data) {
            deferred.resolve(data);
        })
        .error(function(msg, code) {
            deferred.reject(msg);
        });

    return deferred.promise;
}