AngularJS CORS Probleme

Den ich gesucht habe über 200 Seiten(vielleicht übertreibe, aber nicht viel), wie man in der Lage sein zu handhaben cors mit angularjs. Wir haben einen lokalen Rechner läuft ein web-API-server. Wir entwickeln eine client-Aufrufe an die API für die Daten. Beim ausführen der client von dem server, den wir empfangen von Daten kein problem. Wenn wir es aus einer anderen Domäne wir bekommen eine rote 200-Antwort, wenn Sie versuchen zum abrufen von Daten, und eine leere Antwort. Hier einige code:

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;
    }
};
});

Habe ich auch versucht, diese mit $http, aber bekomme ich die gleiche Antwort (oder deren fehlen):

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) {

    }
};
});

Wenn ich nur navigieren Sie zu der url, die mit der json im browser-es spuckt die Daten aus. Auf dem server sind wir so Kreuz Domäne Herkunft, die offensichtlich zu meiner vorherigen Aussage. Wie Sie sehen können ich bin die Implementierung der Header überschreibt in der Anwendung.config habe ich auch versucht, dass es direkt in mein controller... kein Unterschied...

3 Tagen nun auf diese Aufgabe.

Helfen mit, dies ist MEHR als geschätzt. Vielen Dank im Voraus.

InformationsquelleAutor der Frage Shane | 2013-07-19

Schreibe einen Kommentar