Проблема чтения из моего Slim PHP API через Angularjs с использованием ngResource

Я недавно завершил сборку Slip PHP API, которая прекрасно взаимодействует с моим Android-приложением. Сейчас я занимаюсь созданием веб-интерфейса и не могу понять, как запрашивать информацию через GET с помощью функции запросов ngResource.

Мой файл index.html:

<!doctype html>
<html ng-app="discussApp">
<head>
</head>
<body>

<div ng-controller="topicsController">
  <div>{{ topics }}</div>
</div>

<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-resource.min.js"></script>
<script type="text/javascript" src="js/angular-route.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>

Мой файл app.js:

var app = angular.module('discussApp', ['ngResource']);

app.controller("topicsController", function($scope, $resource, $http) {
  var Topics = $resource("http://api.discussorama.com/v1/topics");

  $scope.topics = Topics.query();
});

И информация, которую я пытаюсь прочитать (я успешно сделал это как из расширенного REST-клиента Chrome, так и из браузера и моего приложения для Android), находится по адресу http://api.discussorama.com/v1/topics (Примечание: я я временно отключил мое промежуточное ПО аутентификации в Slim PHP для тестирования с Angularjs). Конечная точка возвращает ответ json, но я не вижу ничего в Angular, кроме "[]". Ссылка на приложение Angular: http://hwaelapps.com/discuss/web если кто-то хотел бы точно узнать, что происходит. Заранее спасибо за помощь. Примечание: я попробовал несколько параметров конфигурации ngResource, включая urlencode, но он все еще не получает данные, поэтому я удалил все это, и весь код был таким же, как и в вопросе.

1 ответ

Ответ был в журнале консоли все время. Ошибка, которую я получал, была:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Решение было просто добавить

header("Access-Control-Allow-Origin: *");

в файл index.php моего Slim API. Я предполагаю, что мой общий хост не настроен для CORS.

Другие вопросы по тегам