小编tib*_*eoh的帖子

Django 和 Angular POST 请求 - CSRF 失败

我已经在本地部署了一个带有 Django REST API 框架的 API。我的移动应用程序是使用 Ionic 框架(使用 AngularJS)开发的。

在我的应用程序中,当我想在 Ajax 中请求(POST 方法)时,出现此错误:

CSRF 失败:CSRF 令牌丢失或不正确。

我在 Django REST API 集成项目中请求时没有收到此错误。

我在网上研究了解决方案,但没有一个奏效。

项目信息:

Django 文件settings.py

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'klipix.django-crossdomainxhr-middleware.OrganizationMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
Run Code Online (Sandbox Code Playgroud)

我使用了 TokenAuthentication 方法(http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication)。我的django-crossdomainxhr-middleware.py文件:

class OrganizationMiddleware(object):

def process_view(self, request, view_func, view_args, view_kwargs):
header_token = request.META.get('HTTP_AUTHORIZATION', None)
if header_token is not None:
  try:
    token = sub('Token ', '', request.META.get('HTTP_AUTHORIZATION', None))
    token_obj = …
Run Code Online (Sandbox Code Playgroud)

python django csrf django-csrf angularjs

1
推荐指数
1
解决办法
2552
查看次数

标签 统计

angularjs ×1

csrf ×1

django ×1

django-csrf ×1

python ×1