5

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.

Cœur
  • 37,241
  • 25
  • 195
  • 267
X-Mat
  • 123
  • 1
  • 5

0 Answers0