0

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

在我的浏览器中加载http://localhost:8000/app/List.html会呈现一个空白页面。为什么?

控制器.js

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

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

列表.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"]}
4

1 回答 1

1

正如其他人所提到的,这个问题很可能是一个跨域问题。这不仅是关于使用相同的域,而且是相同的端口。要绕过这个问题,您可以使用 JSONP,这是一个非常简单的解决方案,专为此目的而设计,也可以使用跨站请求伪造 (XSRF) 保护,它使用 cookie 验证和其他措施来确保安全性,同时提供获取和发布功能(这不是最简单的解决方案)。

于 2013-05-15T20:36:35.583 回答