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

Is it possible to set content-type in angular $resource without body

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

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

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

我的 2 种不同方法(none 有效)

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'});

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

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 作为负载。这使得 post 没有 payload 但有 content-header

成为可能