ionic/angularjs 使用 django csrf 可以在本地服务器上运行但不能在设备上运行

ionic/angularjs with django csrf works on local server but not working on device

我正在 ionic and use Django with django-rest-framework 作为后端工作。我尝试使用 $http post 到我的服务器,如下所示:

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

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

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

我也试过 ngCookies$cookies.csrftoken 没有 return 任何东西。

这是我的后端代码:

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

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

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

return从服务器下载。

对此有什么想法吗?非常感谢!

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

查看答案: