2015-06-28 3 views
2

Я работаю над своим первым приложением AngularJS, а для своих данных я пытаюсь прочитать со страницы на веб-сайте Drupal на моей локальной машине. Он работает на Apache, и он доступен из URL-адреса псевдонима (т. Е. http://mylocalsite вместо http://localhost/mylocalsite). Страница не отображает ничего, кроме массива JSON данных, но по какой-то причине, мой Угловая приложение не может прочитать его, используя $ HTTP, либо

angular.module('nbd7AppApp') 
    .controller('BlogListCtrl', ['$scope', '$http', function ($scope, $http) { 
    $http.get('http://mylocalsite/blogs/json'}) 
     .success(function(data) { 
     $scope.nodes = data; 
    }); 
    }]); 

или

angular.module('nbd7AppApp') 
    .controller('BlogListCtrl', ['$scope', '$http', function ($scope, $http) { 
    $http({method: 'GET', url: 'http://mylocalsite/blogs/json'}) 
     .success(function(data) { 
     $scope.nodes = data; 
    }); 
    }]); 

Однако, если я поставил JSON в локальный файл и получить к нему доступ так

angular.module('nbd7AppApp') 
    .controller('BlogListCtrl', ['$scope', '$http', function ($scope, $http) { 
    $http.get('views/blogs.json') 
     .success(function(data) { 
     $scope.nodes = data; 
    }); 
    }]); 

он отлично работает. Есть ли что-то, что мне нужно сделать по-другому, чтобы читать его с URL-адреса сайта?

Спасибо.

+0

Есть ли сообщения об ошибках в консоли? –

+0

Если вы показываете отладчик Chrome на странице своего углового приложения, тело запроса http, которое вы видите на вкладке в сети, похоже на то, что находится в локальном файле JSON? Также есть ли кодировка символов, установленная на UTF8 на сервере, из которой вы получаете JSON? –

+0

Является ли 'blogs/json' частью псевдонима? Я имею в виду, переводит ли это на 'blogs.json'? –

ответ

0

Как указано в моем комментарии выше, ответ был CORS. Как только я добавил эту строку к своему виртуальному хосту Apache:

Header set Access-Control-Allow-Origin "*" 

ошибка исчезла.