使用angularJS时如何解决Get JSON数据错误

时间:2015-07-10 14:49:47

标签: json angularjs

错误在哪里,因为我为这项工作做了所有工作。拜托,有人帮助我!

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>  
  <script type="text/javascript">
    var app = angular.module('myApp', []);
    app.controller('heroisCtrl', function($scope, $http) {
       $http.get("https://angularjs.org/greet.php?callback=herois&name=Super%20Hero")
       .success(function(data) { $scope.names = data;});
    });
    </script>
</head>
<body>

<div ng-app="myApp" ng-controller="heroisCtrl">
<table>
  <tr ng-repeat="x in names">
    <td>{{ x.name }}</td>
    <td>{{ x.greeting }}</td>
  </tr>
</table>
</div>

</body>
</html>

在最后,我通过控制台获取此信息:XMLHttpRequest无法加载angularjs.org/greet.php?callback=herois&name=Super%20Hero。请求的资源上没有“Access-Control-Allow-Origin”标头。

2 个答案:

答案 0 :(得分:1)

当从回调api获取数据时,必须设置 callback = JSON_CALLBACK

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>  
  <script type="text/javascript">
        var app = angular.module('myApp', []);
        app.controller('heroisCtrl', function($scope, $http) {
           $http.get("https://angularjs.org/greet.php?callback=JSON_CALLBACK&herois&name=Super%20Hero").success(function(data) { $scope.names = data;});
        });
    </script>
</head>
<body>

    <div ng-app="myApp" ng-controller="heroisCtrl">
        <table>
          <tr ng-repeat="x in names">
            <td>{{ x.name }}</td>
            <td>{{ x.greeting }}</td>
          </tr>
        </table>
    </div>

</body>
</html>

答案 1 :(得分:0)

这个问题是你的后端! 你必须添加

 AllowOrigin = '*' //not secure

或添加

AllowOrigin: 'yourClientAddressOrIp'

不确定sintax,但这个想法是我之前写的,然后应该在那里。 Sintax取决于你的后端语言。

那就是全部

此致