是否可以在没有正文的角度$ resource中设置内容类型

时间:2017-09-07 08:40:19

标签: angularjs rest angular-resource

我正在使用接受以下请求的API

POST /myulrpath/params?x=2,3
Host: somehost:20200
Content-Type: application/json

请求中不允许有效负载,但仍需要正确的内容/类型。我尝试使用angular $ resource来解决这个问题,但内容类型始终设置为允许所有" * / *"一旦请求发送。任何人都知道是否可以使用$ resource修复此问题,或者我是否必须回退到$ http?

我的两种不同方法(无效)

var url = utils.prefixApiUrl('/myulrpath/params?x=:ids');
var parameters = 
var actions = {
    post: {
        method: 'post',
        hasBody: false,
        headers: {
            'Content-Type': 'application/json'
        },                        
        transformRequest: function (request, headers) {
            headers = {'Content-Type': 'application/json'};
        }
    }
};

$resource(url, parameters, actions).post({ids:'1,2,3'});

以及

var url = utils.prefixApiUrl('/myulrpath/params?x=:ids');
var parameters = 
var actions = {
    post: {
        method: 'post',
        hasBody: false,                     
        transformRequest: function (request, headers) {
            headers = {'Content-Type': 'application/json'};
        }
    }
};

$resource(url, parameters, actions, ).post({ids:'1,2,3'});

1 个答案:

答案 0 :(得分:0)

所以我想出了答案,只是想分享它。

var url = utils.prefixApiUrl('/myulrpath/params?x=:ids');
var parameters = 
var actions = {
    post: {
        method: 'post',
        headers: {
                  'Content-Type': 'application/json'
        },
    }
};

$resource(url, parameters, actions, ).post({ids:'1,2,3'}, null);

所以我删除了hasBody选项,并且在对post方法的调用中,我添加了一个null作为有效负载。这使得可以在没有有效载荷但使用内容标题

的情况下发布