如何在我的服务中添加Access-Control-Allow-Origin(离子)

时间:2015-11-10 14:00:36

标签: javascript angularjs ionic-framework

我正在研究一个离子项目,我已经写了我的服务。但是在我的console.log中,我收到消息说我的标题中没有“Access-Control-Allow-Origin”。

如何将其纳入我的服务?

这是我的服务代码:

angular.module('Chemicar.services', [])

.service('ChemicarService', function($http, $q){

    var url_youtube = "XXXXXXXXXXXXXXXXXXXX";

    var self = {
        'youtubeVideos' : [],
        'loadYoutubeVideos' : function(){
            var d =  $q.defer();
            $http.get(url_youtube)
            .success(function(data){
                console.log(data);
                self.youtubeVideos = data;

                //create an array to hold the prommisses
                var promisses = [];

                $q.all(promisses).finally(function(){
                    d.resolve('The promise has been fulfilled');
                    //console.log("ˆˆˆˆˆ" , promisses);
                });
            })
            .error(function(msg){
                console.error("There was an error in retrieving the json data " , msg);
                d.reject("The promise was not fulfilled");
            });
            return d.promise;
        }
    };
    return self;
});

我的控制器代码:

angular.module('Chemicar.controllers', ['Chemicar.services'])

.controller('VideoCtrl', function($scope, $http, ChemicarService){

    $scope.youtubeVideos = [];

    ChemicarService.loadYoutubeVideos().then(function success (data){
        $scope.youtubeVideos = ChemicarService.youtubeVideos;
    })

})

enter image description here

2 个答案:

答案 0 :(得分:1)

跨越域名是一个问题,并通过CORS治愈(上面的评论)

对于短期修复(假设您正在使用Chrome),请为目标添加disable-web-security标志 -

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security

答案 1 :(得分:0)

好的,我看了以下博客的评论 - > http://blog.ionic.io/handling-cors-issues-in-ionic/

我刚刚安装了Allow-Control-Allow-Origin:*插件作为快速修复。当在实际设备上运行时,这当然不起作用

所以我仍在寻找通过js将Allow-Control-Allow-Origin添加到我的服务中的解决方案。因为我无法联系api的管理员....