6

经过几个理解问题后,我遇到了非常困难的问题。我无法让我的自定义标头处理来自 AngularJS 的 $request。我的定义如下所示:

$scope.re = $resource('/', {
    callback: 'JSON_CALLBACK'
    }, {
    'updateCart': {
        method: 'POST',
        headers: {
            'module': 'Shop',
            'mod_id': '1',
            'event': 'updateCart'
        }
    }
});

也在这里JSFIDDLE

问题是否仍然有效?还有另一种设置自定义标题的方法吗?谢谢你的帮助!:)

4

2 回答 2

3

我相信您必须回退到 $http 以获取自定义标头。我也想完成类似的任务,但没有办法使用 $resource 来完成。

于 2013-01-07T00:10:40.893 回答
0

这篇文章有点旧,但我为像我这样正在寻找答案的其他人回答:

return $resource('api/people/:id', {id: '@id'}, {
        min: {
            data: '',
            method: 'GET',
            headers: {'Content-Type': 'application/min+json'},
            isArray: true
        },
        update: {
            method: 'PUT'
        }
    });

请不要忘记,data否则不会设置标题。

对于像我这样喜欢打字的人,打字稿中的构建器可以按如下方式完成:

export class ResourceBuilder {

        static $inject = ['$resource'];

        constructor(private $resource: ng.resource.IResourceService) {
        }

        private updateAction: ng.resource.IActionDescriptor = {
            method: 'PUT',
            isArray: false
        };

        private minAction: any = {
            data: '',
            method: 'GET',
            headers: {'Content-Type': 'application/min+json'},
            isArray: true
        };

        public getResource(url: string, params?: Object): CrudResourceClass<any> {
            let resource = this.$resource(url, params, {
                update: this.updateAction,
                min: this.minAction
            });
            return <CrudResourceClass<any>> resource;
        }
    }

minAction是类型any,因为错过了该ng.resource.IActionDescriptor属性,我不知道他们是否忘记了,我将为此打开一个问题。

我希望它有所帮助。

于 2016-08-12T11:56:37.810 回答