I wrote this easy comet implementation
var app = angular.module('App', ['restangular', 'Comet']);
app.config(function(RestangularProvider) {
//RestangularProvider.setBaseUrl('http://localhost/my-rest-api/api/v1/');
RestangularProvider.setBaseUrl('http://[private-ip]/my-rest-api/api/v1/');
RestangularProvider.setDefaultHttpFields({timeout: 60*60*24});
});
var comet = angular.module('Comet', []);
comet.factory('CometService', ['Restangular', function(Restangular){
var cometUrl = Restangular.all('comet');
var asteroid = function(cometUrl, callback){
cometUrl.post({user:"Username"}).then(function(data){
callback(data.plain());
asteroid(cometUrl,callback);
})
};
return {
getComet: function(callback){
asteroid(cometUrl,callback);
}
}
}]);
app.controller('Ctrl', ['$scope', 'CometService', function($scope, CometService){
function callback(data){
console.log(data);
}
CometService.getComet(callback);
}]);
It' work very well in localhost but not if the API is called from another host. The same code work fine if i don't use restangular. The API is written in PHP with Phalcon framework, han all CORS header are set. All directory have 777 permission. The 403 error was appened if i use the http://[private-ip]/my-rest-api/api/v1/comet url directly in Restangular.all(url) and the XMLHttpRequest (OPTION Angular.js 9827) was appened whit this code.