localhost上的Angularjs $资源未将数据传递给控制器

时间:2014-06-17 10:35:56

标签: json spring angularjs spring-mvc

我已经设置了一个spring / mongoDB后端作为REST Api:

    GET上的
  • http://localhost:8080/articles将为我提供一系列JSON(所有文章)
  • GET上的
  • http://localhost:8080/articles/:articleId会给我一个JSON(一篇文章)
  • 例如:GET http://localhost:8080/articles/539edeb08ecdce3f8792084c让我:{"title":"Test","content":"content"}

在angularjs方面,我设置了一项服务:

angular.module('myApp.services', ['ngResource'])
    .factory('articleService', function ($resource) {
        return $resource('http://localhost:port/articles/539edeb08ecdce3f8792084c',{port:":8080"});
    });

还有一个控制器:

angular.module('myApp.controllers', ['ngResource'])
  .controller('MyCtrl', ['$scope', 'articleService', function($scope,  articleService) {
    $scope.article = articleService.get();
  }]);

我的HTML看起来像这样:

<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        {{article}}
    </div>
</div>

现在,当我运行它时,我没有在HTML上获得任何内容,但是firebug表明我的请求正在运行:

另外,为了确保我没有遗漏任何东西,我尝试在JSfiddle上运行相同的东西,从一个简单的API请求:JSFiddle

现在,我有点迷失了。当我请求我的本地服务器时它不起作用,但是当我请求远程REST Api时它可以工作。有什么好主意帮我吗?

1 个答案:

答案 0 :(得分:1)

问题出在Spring方面:通过启用CORS,它已被修复。

有关详细信息,请参阅Spring tutorial on CORS