В моем проекте у меня есть один json файл, один из которых я развернул на локальном компьютере/сервере и другой, который я развернул на другом сервере.
Вот мой код для вызова json-данных из углового контроллера -
function Controller($scope, $http) {
$http.get("http://localhost:8080/RESTCall/test.json").
success(function(data) {
$scope.lists= data;
});
}
function Controller2($scope, $http) {
$http.get("http://<Server IP>:8080/RESTCall/test.json").
success(function(data) {
$scope.lists= data;
});
}
Вот моя страница index.html, где я использую оба этих контроллера:
<div ng-controller="Controller">
<ul ng-repeat="list in lists">
<li>
{{list.testdata}}
</li>
</ul>
</div>
<div ng-controller="Controller2">
<ul ng-repeat="list in lists">
<li>
{{list.testdata}}
</li>
</ul>
</div>
Во время выполнения я получаю данные, поступающие с Local Machine/Server OR, но для Controller1 я получаю следующую ошибку:
OPTIONS http://<SERVER IP>:8080/RESTCall/test.json net::ERR_CONNECTION_REFUSED
Когда я получаю прямой http://<SERVER IP>:8080/RESTCall/test.json
Я могу получить данные.
Вы запускаете междоменный запрос (CORS). Перед запуском фактического запроса GET браузер отправит запрос перед полетом OPTIONS. Поэтому вам нужно настроить сервер для ответа на запрос OPTIONS и вернуть соответствующие заголовки Access-Control- *.