Reputation: 2142
after a couple of understanding-problems, I have run into really hard probs. I can't get my custom headers to work on the $request from AngularJS. My definition looks like this:
$scope.re = $resource('/', {
callback: 'JSON_CALLBACK'
}, {
'updateCart': {
method: 'POST',
headers: {
'module': 'Shop',
'mod_id': '1',
'event': 'updateCart'
}
}
});
Also here JSFIDDLE
Is this Issue still active? Is there another way to set custom headers? Thanks for any help! :)
Upvotes: 6
Views: 5513
Reputation: 344
This post is a bit old but I answer for other people like me who were looking for an answer:
return $resource('api/people/:id', {id: '@id'}, {
min: {
data: '',
method: 'GET',
headers: {'Content-Type': 'application/min+json'},
isArray: true
},
update: {
method: 'PUT'
}
});
Please do not forget the data
because otherwise does not set the header.
For people like me loving typing, a builder in typescript can be done as follows:
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;
}
}
The minAction
is of type any
because the ng.resource.IActionDescriptor
misses that property, I do not know if they have forgot, I will open an issue for that.
I hope it helps.
Upvotes: 0
Reputation: 4615
I believe you have to fallback to $http for custom header. I was also looking to accomplish similar task but there is no way to do it using $resource.
Upvotes: 3