我一直在尝试让它工作,从概念上讲,只需单击标签,它就会调用返回 JSON 结果的 REST 服务,我在其中获取国家/地区名称并将其显示为测试。 我正在使用 Angular 。
每次我单击它都会返回状态 0。 相信这就是 plnker http://plnkr.co/edit/k3Z6Ufi734oYE4ciVJs8
这是 HTML 没什么大不了的,只需通过 ng-click 调用 GetInfo 函数
<!DOCTYPE html>
<html ng-app="mainModule">
<!--http://plnkr.co/edit/k3Z6Ufi734oYE4ciVJs8-->
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link href="style.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<div><b ng-click="GetInfo()">Click Me</b></div>
<b>{{AdditionalInfo.geobytescountry}}</b>
</body>
</html>
这是 Angular 后端。
var app = angular.module('mainModule', []);
app.controller('MainCtrl', function($scope, $http) {
$scope.name = 'World';
var cityDetailsUrl = "http://gd.geobytes.com/GetCityDetails?callback=?&fqcn=new%20york,%20NY,%20United%20States";
$scope.AdditionalInfo = {};
$scope.GetInfo = function ()
{
$http.get(cityDetailsUrl)
.success(function(data, status, header, config){
console.log('ok');
$scope.AdditionalInfo = data;
console.log(data);})
.error(function(data, status, header, config){
console.log('error');
$scope.AdditionalInfo = data;
console.log(status);});
}
});
当我在网络浏览器中尝试 id 时,提供的链接应该会产生 JSON 响应。 类似于此 "geobytesinternet":"US","geobytescountry":"美国"
最佳答案
在您的 Plunker 示例中,这似乎是两个问题。
首先,您似乎想使用 JSONP
,因此您应该使用 $http.jsonp
而不是 $http.get
,简单的 $http.get
将因违反同源策略而失败。
另一个问题是,您的 URL 应该具有属性 callback=JSON_CALLBACK
而不是 callback=?
才能使 JSONP 正常工作。解决这两个问题后,代码似乎可以正常工作。
查看 Plunker 的编辑版本:http://plnkr.co/edit/SYB9TI29MOHfNPw1jjQT
关于javascript - Angular Http Get 始终为 ng-click 返回状态 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990394/