从dirrenet主机重新发送403禁止错误或XMLHttpRequest错误

X-M*_*Mat 5 javascript php angularjs phalcon restangular

我写了这个简单的彗星实现

    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);
}]);
Run Code Online (Sandbox Code Playgroud)

它在localhost中很好用,但是如果从其他主机调用该API则不能。如果我不使用矩形,则相同的代码也可以正常工作。该API是使用Phalcon框架用PHP编写的,并且设置了所有CORS标头。所有目录都具有777权限。如果我直接在Restangular.all(url)中使用http:// [private-ip] / my-rest-api / api / v1 / comet url,并且XMLHttpRequest(OPTION Angular.js 9827)是403错误被应用加上了这段代码。