1



我正在尝试使用 $http 服务从角度调用外部 REST 服务。
问题是我被困在 $http.get 方法上,因为每次我调用
其余服务时,我都会收到一个 status = 0 的
错误,并且错误回调的 data 参数中没有任何信息。

到目前为止,我已经尝试在端口 5000 上调用本地服务运行:这应该返回一个带有属性和值的 json 对象。另一种方法是调用http://api.flickr.com/services/rest/?method=flickr.test.echo&name=test希望得到答案。对于他们两个,我都得到了同样的错误:我之前提到过。调用是从一个注入了 http 服务的角度控制器发出的。谢谢。$http.get('http://localhost:5000/ping')



4

3 回答 3

3

你有没有尝试过:

    $http({method: 'GET', url: 'someURL'}).
            success(function(data, status, headers, config) {
                //set view model or do something.

            }).
            error(function(data, status, headers, config) {

            });
于 2013-05-16T19:23:23.083 回答
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

请注意,干净的 JSON 响应是通过记录对象的.data属性获得的returnedJson。由于它是一个 Promise,它包含与使用 Web 服务无关的其他信息。

另请注意,您要使用的 Web 服务也应该与您的 Angular 应用程序位于同一域中,否则您可能会遇到跨域错误,除非该服务通过公开跨域策略来允许从外部网站使用。

(在此处查找更多信息:有人可以发布格式良好的 crossdomain.xml 示例吗?

如果是这样的话,这篇文章应该会有所帮助:

jQuery AJAX 跨域

希望这可以帮助。

于 2016-10-08T17:33:28.183 回答
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');
            });
于 2015-12-17T20:15:58.703 回答