从AngularJS中的URL获取JSON?

时间:2013-05-15 18:36:17

标签: javascript angularjs get getjson angularjs-scope

我有一个node.js服务器在端口8000上提供AngularJS应用程序,一个Python服务器在端口80上通过HTTP公开数据作为JSON。

在我的浏览器http://localhost:8000/app/List.html中加载呈现blank page。为什么呢?

Controllers.js

function FooListCtrl($scope, $http) {
    $http.get('localhost/foo/list').success(function (data) {
        $scope.foo_lists = data;
    });
}

FooListCtrl.$inject = ['$scope', '$http'];

List.html

<!doctype html>
<html lang="en" ng-app>
    <head>
        <meta charset="utf-8">
        <script src="lib/angular/angular.js"></script>
        <script src="js/controllers.js"></script>
    </head>
    <body ng-controller="FooListCtrl">
        <code>{{foo_lists | json}}</code>
    </body>
</html>

curl -X GET localhost / foo / list -i

HTTP/1.0 200 OK
Date: Wed, 15 May 2013 18:28:49 GMT
Server: WSGIServer/0.1 Python/2.7.4
Content-Length: 30
Content-Type: application/json

{"Foo": ["bar", "can", "haz"]}

1 个答案:

答案 0 :(得分:1)

正如其他人所提到的,这个问题最有可能是一个跨领域的问题。它不仅仅是关于使用相同的域,还有相同的端口。要绕过此问题,您可以use JSONP,这是为此目的而设计的非常简单的解决方案,或者使用Cross Site Request Forgery (XSRF) Protection,它使用Cookie验证和其他措施来确保安全性,同时提供get和post功能(这不是最简单的解决方案。)