Запрос метода ng-ресурса () не выполнен, пока сервер отвечает со статусом 200
Я создал два ресурса
angular.module('myApp.services', ['ngResource'])
.factory('Banana', function ($resource) {
return $resource('http://localhost:8080/banana/:bananaId');
})
.factory('Mango', function ($resource) {
return $resource('http://localhost:5000/mango/:mangoId');
});
Оба REST-ресурса вроде бы работают правильно. Я проверил их с помощью Почтальона, отправив GET-запросы по http://localhost:8080/banana/ и http://localhost:5000/mango/. В обоих случаях сервер ответил кодом состояния 200 OK и возвратил непустой массив JSON-объектов типа банан или манго.
Когда я обращаюсь к REST-интерфейсам из контроллеров Angular: Mango.query() правильно возвращает массив Mangos, но Banana.query() возвращает пустой массив.
Банановая часть написана на Java с Джерси:
@Path("banana")
public class BananaCollection {
@GET
@Produces({MediaType.APPLICATION_JSON})
public List<Banana> getBananas() {
return BananaBox.getBananas(); // BananaBox handles the connection to the DB etc.
}
У меня нет доступа к коду Mango Back-end.
В чем может быть разница между этими двумя?
1 ответ
Хотя оба адреса включены localhost
другой номер порта означает, что браузер считает их как разные домены.
Оба местоположения находятся на порте, отличном от исходного html, поэтому безопасность браузера включится, и если ответ не включает подходящий Access-Control-Allow-Origin
заголовок ответные данные будут заблокированы от достижения JavaScript.