I'm using this piece of code and works perfectly for me:
var MyApp = angular.module('MyApp'); 
MyApp.factory('DB_Services', ['$http' , '$q' , function($http , $q) {
    var l_Result ;
    var DB_Services = function(p_URL_Root , p_Query) {
        var l_deferred = $q.defer();
        var l_params   = JSON.stringify(p_Query) ;
        var l_url      = "http://localhost:8080/BLABLA/BLABLA_2";
        var req = { url    : l_url, 
                    method :"GET", 
                    timeout:10000 , 
                    headers: { 
                        'Content-Type': 'application/json ; charset=UTF-8'
                    }, 
                   params:{request:p_Query}
                  } ;
        $http(req ).
                    success(function(data, status, headers, config) {
                         l_deferred.resolve({Server_Response:data , Server_Status: status});
                    }).
                    error(function(data, status, headers, config) {
                         l_deferred.resolve(status);
                    });
                    return l_deferred.promise;
        return l_deferred.promise;
    } ;
    return DB_Services;
}]);
EDIT:
I should add that this code approaches a SERVLET who in its turn accessed the DB (I'm guessing that you do not intend to have direct access from the client to the DB, right?).