Defina seus cabeçalhos padrão UMA VEZ

No AngularJs 1.1.4 (a única versão em que testei), se você definir $http.defaults.headers.postduas vezes, a segunda configuração sobrescreverá a primeira, então defina um objeto de key:valuepares uma vez em vez de fazê-los um de cada vez.

Faça isso.

$http.defaults.headers.post  = {
'My-Custom-Header': obj.val,
'X-Forwarded-User': obj.userid
};

Isso não.

$http.defaults.headers.post  = {
'My-Custom-Header': obj.val
};
$http
.defaults.headers.post = {
'X-Forwarded-User': obj.userid
};

Neste segundo exemplo, seus POSTs terão apenas o X-Forwarded-Usercabeçalho definido, My-Custom-HeaderNÃO estará lá.