es probable que desee utilizar el servicio $http o $resource. En el documento $ http, puede ver la sección en Configurando encabezados HTTP para establecer SOAPAction y el tipo de contenido predeterminado ya estará configurado en json (aunque también debe poder anularlo).
Esto podría comenzar y me gustaría ver otras respuestas de una mejor manera porque esto parece limitado.
var module = angular.module('myApp', []);
module.config(function ($httpProvider) {
$httpProvider.defaults.headers.post['SOAPAction'] = 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems';
});
function myController($http) {
var data = { 'value1': 1, 'value2': 2 };
$http.post('/songs', data).success(function (data) {
console.log(data);
});
}
Basado en this thread No creo que se pueden establecer las cabeceras de forma diferente para cada llamada, pero parece que un change podría estar llegando al servicio de recursos $ que le permita.
Actualización: debe de haber perdido en la documentación, pero definitivamente puede establecer diferentes acciones por llamada usando $http
por this post así:
var data = { 'value1': 1, 'value2': 2 };
$http.post('/songs', data, {headers: {'SOAPActions': 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems'}})
.success(function (data) {
console.log(data);
});