这是 URL,在浏览器中呈现为 JSON:
这是我尝试将数据存储在变量中的方法:
$http.get('http://api.geosvc.com/rest/US/84606/nearby?apikey=4ff687893a7b468cb520b3c4e967c4da&d=20&pt=PostalCode&format=json').then(function(response) {
$scope.zipCodes = response;
});
这是我尝试显示它的 HTML:
<pre>zipCodes {{zipCodes | json}}</pre>
但没有任何显示,知道我做错了什么吗?
我也尝试过这个:
$http.jsonp('http://api.geosvc.com/rest/US/84606/nearby?apikey=4ff687893a7b468cb520b3c4e967c4da&d=20&pt=PostalCode&format=json').then(function(response) {
$scope.zipCodes = response;
});
我也尝试过 AngularJS 资源,但也返回未定义:
var zipCodes = $resource("http://api.geosvc.com/rest/US/84606/nearby?apikey=4ff687893a7b468cb520b3c4e967c4da&d=20&pt=PostalCode&format=json",
{ callback: "JSON_CALLBACK" },
{ get: { method: "JSONP" }}
);
zipCodes.get({}, function(zipCode){
console.debug(zipCode.PostalCode);
});
console.debug(zipCodes.get());
$scope.zipCodes = zipCodes.get().results;
最佳答案
您需要使用 response.data
因为在使用 .then
时您会在 response
对象中获取所有 4 个参数,即 data
、状态
、 header
、配置
$scope.zipCodes = response.data;
替代方案
您可以使用success
或error
函数
$http.get('http://api.geosvc.com/rest/US/84606/nearby?apikey=485a35b6b9544134b70af52867292071&d=20&pt=PostalCode&format=json')
.success(function(data, status, headers, config) {
$scope.zipCodes = data;
})
.error(function(error, status, headers, config) {
console.log(status);
console.log("Error occured");
});
关于javascript - AngularJS 从外部 URL 获取 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112306/