Problemas de AngularJS CORS

He buscado en más de 200 sitios (tal vez exagerando, pero no por mucho) sobre cómo ser capaz de manejar los cors con angs. Tenemos una máquina local que ejecuta un servidor de API web. Estamos desarrollando un cliente que llama a la API para obtener datos. Al ejecutar el cliente desde el servidor recibimos datos sin problemas. Cuando lo ejecutamos desde un dominio diferente, obtenemos una respuesta roja 200 cuando intentamos obtener datos y una respuesta en blanco. Aquí hay un código:

var myApp = angular.module('Project', ['ngResource']);

myApp.config(function($routeProvider){
    $routeProvider.
        when('/new', {templateUrl:'templates/new.html', controller:'EditProjectController'}).
        when('/mobile', {templateUrl:'templates/mobile.html', controller:'ProjectController'}).
        when('/it', {templateUrl:'templates/it.html', controller:'ProjectController'}).
        when('/writing', {templateUrl:'templates/writing.html', controller:'ProjectController'}).
        when('/all', { templateUrl: 'templates/all.html' }).
        when('/login', { templateUrl: 'partials/_login.html' }).
        otherwise({ redirectTo: '/all' });
});
myApp.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);



myApp.controller('ProjectController', 
function myApp($scope, $http, projectDataService, userLoginService) {
    $http.defaults.useXDomain = true;
    $scope.loadProject = function(){
        projectDataService.getProject(function(project){
            $scope.project = project;
            })


    };
    $scope.loadProject();
}

);

myApp.factory('projectDataService', function ($resource, $q) {
var resource = $resource('http://webapiserver/api/:id', { id: '@id' });
return {
    getProject: function () {
        var deferred = $q.defer();
        resource.query({ id: 'project' },
            function (project) {
                deferred.resolve(project);
            },
            function (response) {
                deferred.reject(response);
            });

        return deferred.promise;
    },
    save: function (project) {
        var deferred = $q.defer();
        project.id = 'project/9';
        resource.save(project,
            function (response) { deferred.resolve(response); },
            function (response) { deferred.reject(response); }
            );
        return deferred.promise;
    }
};
});

También he intentado esto usando $ http pero obtengo la misma respuesta (o falta de ella):

myApp.factory("projectDataService", function ($http) {

return {
    getProject: function (successcb) {
        $http.get("http://webapiserver/api/project").
        success(function (data, status, headers, config) {
            successcb(data);
        }).
        error(function (data, status, headers, config) {

    }
};
});

Cuando acabo de navegar a la url que está sirviendo el json en el navegador, escupe los datos. En el servidor estamos permitiendo orígenes de dominios cruzados, lo cual es evidente por mi declaración anterior. Como puede ver, estoy implementando las modificaciones de encabezados en myApp.config. Incluso he intentado colocarlo directamente en mi controlador ... no hay diferencia ...

3 días ahora en esta tarea.

Ayuda con esto es más que apreciado. Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta