是否可以更改AngularJS $资源对象的标头配置?

时间:2013-10-02 21:02:46

标签: rest angularjs

这是我的代码:

var userAuth;
var user = $resource('https://myservice.com/user/:id/', {id: '@_id'} ,{
    login: {
        method: 'POST',
        params: {
            id: 'login'
        },
        transformResponse: function(data) {
            data = angular.fromJson(data);
            userAuth = 'Kinvey '+data._kmd.authtoken;
            return data;
        }
    },
    current: {
        method: 'GET',
        params: {
            id: '_me'
        },
        headers: {
            'Authorization': userAuth
        }
    }
});

我希望能够在资源的userAuth端点的标头中使用current变量的更新内容,之后修改登录电话的transformResponse。这甚至可能吗?如果是这样,怎么样?

编辑:我使用的是Angular 1.1.3版 - 这个问题是关于在设置资源后更改资源中的标头,而不是最初设置它们。感谢

1 个答案:

答案 0 :(得分:4)

假设您正在使用当前的稳定版本(1.0.8),尽管$ resource页面中记录了此功能,但尚未发布。

AngularJS resource not setting Content-Type

编辑:

请参阅下面的评论以解释此代码。

var customerHeaders = {
    'Authorization' : ''
};
var user = $resource('https://myservice.com/user/:id/', {id: '@_id'} ,{
    login: {
        method: 'POST',
        params: {
            id: 'login'
        },
        transformResponse: function(data) {
            data = angular.fromJson(data);
            customHeaders.Authorization = 'Kinvey '+data._kmd.authtoken;
            return data;
        }
    },
    current: {
        method: 'GET',
        params: {
            id: '_me'
        },
        headers: customHeaders
    }
});