Angular.JS $ http API请求

时间:2014-11-12 22:33:24

标签: javascript html json angularjs api

我有一个奇怪的问题。到处寻找但找不到任何解决方案。这是我第一次使用angular.js,我正试图从API中获取内容到我的Angular App中。

成功消息有效,但(数据)为空。如果我将GET URL更改为w3Schools http://www.w3schools.com/website/Customers_JSON.php中的URL,则可以正常工作。所以我不确定我的请求URL http://fingerzeig.ch/api/agenda/list是否格式正确我也不知道我是否需要解码或编码数据。如果我比较两个页面,我注意到fingerzeig URL有点不同。

任何帮助将不胜感激。

这是我的代码myapp.js:

var app = angular.module("MyApp", []);

app.controller("PostsCtrl", function($scope, $http) {
  $http.get('http://fingerzeig.ch/api/agenda/list').
    success(function(data, status, headers, config) {
     console.log("success!");
     console.log(data);
      $scope.posts = data;
    }).
    error(function(data, status, headers, config) {
      // log error
    });
});

这里是HTML:

<body ng-app="MyApp">
              <div ng-controller="PostsCtrl">
                <ul ng-repeat="post in posts">
                  <li>{{post.ID}}</li>
                </ul>
            </div>
</body>

这里有链接:

http://www.w3schools.com/website/Customers_JSON.php =&gt;工作

http://fingerzeig.ch/api/agenda/list =&gt;不工作

以下是fiddels: 一个与我的请求网址,我想要工作。一个来自w3学校的示例网址。只有GET网址被更改。

小提琴不起作用:link

工作的人link

非常感谢!

1 个答案:

答案 0 :(得分:3)

这可能是一个跨域问题。请注意,http://www.w3schools.com/website/Customers_JSON.php具有Access-Control-Allow-Origin: *响应标头而http://fingerzeig.ch/api/agenda/list没有。

$ curl -I "http://www.w3schools.com/website/Customers_JSON.php"

如果您要提出跨域请求,则必须处理CORS。