Запрос метода 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.

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