【问题标题】:ionic/angularjs with django csrf works on local server but not working on device带有 django csrf 的 ionic/angularjs 可以在本地服务器上工作,但不能在设备上工作
【发布时间】:2016-09-08 20:39:28
【问题描述】:

我正在使用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 本地服务器 ionic serve 时,这非常有效,但是当我在 iOS 模拟器或 iPhone 上构建它时,出现 csrf 403:

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

从服务器返回。

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

【问题讨论】:

  • 我认为开发移动应用时不需要 CSRF 令牌。
  • APIView 不需要 csrf_token

标签: ios angularjs django ionic-framework csrf


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多