我正在使用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
我做错了什么吗?
谢谢
根据定义,在XMLHttpRequest上,你不能做跨域请求,但你可以探索一些线索。
如何配置 Angular $resource (ngResource( 以使用 CORS 从另一个域中提取数据
Angular $http.defaults.useXDomain 在 CORS 中真的有必要吗?
请注意,ie8/9上存在一些问题:https://github.com/angular/angular.js/issues/2956