Restangular使用HTTP OPTIONS而不是GET

时间:2013-08-14 15:34:38

标签: django-rest-framework restangular

我有一个使用Django-rest-framework暴露数据的Django应用程序。我可以像这样以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的错误”。

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

此致 菲尔

1 个答案:

答案 0 :(得分:3)

您看到OPTIONS请求的原因可能是由于浏览器发出了飞行前CORS请求。如果是这种情况,您可能需要查看已知与REST框架很好地结合的https://github.com/ottoyiu/django-cors-headers