Можно ли отправить имя хоста по запросу $resource?

Я использую AngularJS 1.5 и ngResource. У меня есть массив объектов, каждый объект содержит IP-адрес, на который я хотел бы отправлять HTTP-запросы GET в итерации. Например:

var arr = [{ip: '127.0.0.1', name: 'myHost'},{ip: '1.2.3.4', name: 'differentHost'}]
arr.forEach(function (obj) { // Send requests to obj.ip });

Если я использую службу $http и просто объединяю IP-адрес, все работает нормально. Тем не менее, я хочу использовать службу $resource, потому что у меня есть набор действий, но когда я использую для этого $resource, он не рассматривает мое имя хоста/IP-адрес в качестве параметра.

    var Host = $resource('http://:ip:49221/:action', { ip: '@ip' }, {
       status: {method: 'GET', params: {action: 'currentStatus'} }
    });
    Host.status({ip: '1.2.3.4'}).$promise.then(function (res) {
        console.log(res);
    });

Я получаю: XMLHttpRequest не может загрузить http://:ip:49221/currentStatus

Планкер: http://plnkr.co/edit/d9roMDWEbPpyG5upKSrv?p=preview

Я делаю что-то неправильно?

Спасибо


person Yaniv Shiloah    schedule 16.02.2016    source источник


Ответы (1)


В XMLHttpRequest по определению вы не можете выполнять междоменный запрос, но есть некоторые возможности, которые вы можете изучить.

Как настроить Angular $resource (ngResource ) для извлечения данных из другого домена с помощью CORS

https://stackoverflow.com/questions/23147196/is-it-angular-http-defaults-usexdomain-really-neccessary-in-cors

И будьте осторожны, есть некоторые проблемы с ie8/9: https://github.com/angular/angular.js/issues/2956

person Allenile    schedule 16.02.2016