J'ai cherché sur plus de 200 sites(peut-être exagérer, mais pas de beaucoup) sur la façon d'être en mesure de gérer la scro avec angularjs. Nous avons un local de la machine en cours d'exécution d'une API web server. Nous développons un client qui appelle l'API pour les données. Lors de l'exécution du client à partir du serveur nous recevons des données à pas de problème. Lorsque nous l'exécuter à partir d'un domaine différent, nous obtenons un rouge 200 réponse lors de la tentative d'extraction de données et un vide de réponse. Voici un 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;
}
};
});
J'ai aussi essayé en utilisant $http, mais j'obtiens la même réponse (ou l'absence de celui-ci):
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) {
}
};
});
Quand je viens de parcourir à l'url qui est de servir le json dans le navigateur, il crache sur les données. Sur le serveur, nous permettant de croiser domaine origines qui se manifeste par ma déclaration précédente. Comme vous pouvez le voir je suis en œuvre les en-têtes des remplacements dans myApp.config j'ai même essayé de le mettre directement dans mon contrôleur... pas de différence...
3 jours maintenant sur cette tâche.
Est des PLUS appréciée. Merci à l'avance.