是否可以在$ resource请求上发送主机名?

时间:2016-02-16 12:57:04

标签: angularjs ngresource angularjs-1.5

我正在使用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

Plunker:http://plnkr.co/edit/d9roMDWEbPpyG5upKSrv?p=preview

我做错了吗?

由于

1 个答案:

答案 0 :(得分:2)

根据定义,在XMLHttpRequest上你不能做跨域请求,但你可以探索一些领先。

How to configure Angular $resource (ngResource) to pull data from another domain using CORS

Is it Angular $http.defaults.useXDomain really neccessary in CORS?

请注意ie8 / 9上有一些问题: https://github.com/angular/angular.js/issues/2956