离开/ angularjs与django csrf在本地服务器上工作但不在设备上工作

时间:2016-09-08 00:50:15

标签: ios angularjs django ionic-framework csrf

我正在使用ionic并使用Djangodjango-rest-framework作为后端。我尝试使用$http发布到我的服务器,如下所示:

$http({
  url: url,
  method: method,
  data: {
    // some data
  }
}).success...

我还在配置中设置了以下内容:

$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';

我也尝试了ngCookies,但$cookies.csrftoken没有返回任何内容。

这是我的后端代码:

class Mark(APIView):
    def post(self, request):
        # do something
        return Response({
            # something
        })

当我使用离子本地服务器ionic serve时,这非常有效,但是当我在iOS模拟器或iPhone上构建它时,会出现csrf 403:

{"detail":"CSRF Failed: CSRF token missing or incorrect."}

从服务器返回。

对此有何想法?非常感谢你!

1 个答案:

答案 0 :(得分:6)

我认为此信息不会解决您的问题,您可能会在以后遇到这个问题。在重启应用程序时,iOS会丢失,请使用window.localStorage来存储它们。

见答案: Can you use cookies in a Cordova application?