我试图使用$ http服务从角度调用外部REST服务
问题是我被困在$ http.get方法上,因为每当我调用其余服务时,我得到一个status = 0的错误,并且错误回调的数据参数
中没有信息。
到目前为止,我已尝试在端口5000上调用本地服务runnig:$http.get('http://
,这应该返回一个带有属性和值的json对象。另一种方法是调用http://api.flickr.com/services/rest/?method=flickr.test.echo&name=test以期得到答案。对于他们两个我都得到了同样的错误:我之前提到的。localhost
:5000/ping')
调用来自注入http服务的角度控制器。
谢谢。
答案 0 :(得分:2)
你试过了吗?
$http({method: 'GET', url: 'someURL'}).
success(function(data, status, headers, config) {
//set view model or do something.
}).
error(function(data, status, headers, config) {
});
答案 1 :(得分:0)
如果有任何参数,请确保您已正确传递参数 一般语法应如下所示:
$http.get('../link/yourApplication/searchBySomeNumber?someNum='+$scope.someNum+'&asOfDate='+asOfDate+'&status=undefined')
.success(function(data, status, headers, config) {
//your code
console.log('Data return successful');
})
.error(function(data, status, headers, config) {
$scope.status = status;
alert('Info Error');
console.log('Group Info Error');
});
答案 2 :(得分:0)
当$ http返回Promise时,您可以使用.then()
方法在解析promise时记录结果,或者在出现任何错误时记录错误:
$http.get('http://localhost:5000/ping')
.then(function(returnedJson) {
console.log(returnedJson.data);
})
.catch(console.error) // or $log.error if you are using $log from Angular
请注意,通过记录.data
对象的returnedJson
属性可以获得干净的JSON响应。由于它是Promise,因此它包含与使用Web服务无关的其他信息。
另请注意,您要使用的Web服务也应与Angular应用程序位于同一个域中,否则您可能会遇到跨域错误,除非该服务允许通过公开跨域策略来使用外部网站。
(在此处查找更多信息:Can someone post a well formed crossdomain.xml sample?)
如果是这样的话,这篇文章应该会有所帮助:
希望这会有所帮助。