1

我有一个 Django 应用程序,它使用 Django-rest-framework 公开数据。我可以像这样以 json 格式访问我的对象:

curl http://localhost:8000/cemeteries/

或者

curl http://localhost:8000/cemeteries/2/

我现在正在尝试使用 AngularJS 来访问数据。我选择了restangular,这看起来很简单。我已经这样配置了restangular:

demoApp.factory('CbgenRestangular', function(Restangular) {
        return Restangular.withConfig(function(RestangularConfigurer) {
            RestangularConfigurer.setBaseUrl('http://localhost:8000');
        });
    });

然后在我的控制器中:

 demoApp.controller('SimpleController', function($scope, simpleFactory, CbgenRestangular, $location){
        $scope.customers = [];

        CbgenRestangular.all("cemeteries/").getList().then(function() {
          console.log("All ok");
        }, function(response) {
          console.log("Error with status code", response.status);
        });

问题是在我的 Django 日志中,我总是看到一个 HTTP OPTIONS 请求:

[14/Aug/2013 12:24:12] "OPTIONS /cemeteries/ HTTP/1.1" 200 10245

在 Firebug 中,它显示“状态代码 0 错误”。

知道我在做什么错吗?在此先感谢您的帮助!

问候,菲尔

4

1 回答 1

3

您看到该OPTIONS请求的原因可能是浏览器发出了飞行前 CORS 请求。如果是这种情况,您可能想看看https://github.com/ottoyiu/django-cors-headers,它可以很好地与 REST 框架配合使用。

于 2013-08-14T16:37:01.097 回答