I just ran into this problem. Tom is spot on. Angular is failing as there is no CSRF token
For other HTTP Method, this can be sorted by overriding the HTTP default headers as follows:
$httpProvider.defaults.headers.put['X-CSRF-Token'] = csrfToken
$httpProvider.defaults.headers.patch['X-CSRF-Token'] = csrfToken
However, Angular doesn't seem to allow:
$httpProvider.defaults.headers.delete['X-CSRF-Token'] = csrfToken
So, based on Tom's suggestion, I added the extra header to my resource as follows:
coreServices.factory('Activity', ['djResource', function(djResource) {
return djResource('/api/activities/:id/', {id: '@id'}, {
update: {method: 'PUT'},
delete: {method: 'POST', headers: {'X-HTTP-Method-Override': 'PATCH'}}
});
}]);
Hope that helps