关于python3.x:django使用csrf防止跨域报错

6次阅读

共计 778 个字符,预计需要花费 2 分钟才能阅读完成。

下载依赖

pip install django-cors-headers

注册利用

INSTALLED_APPS  =  [ 
    ... 
    'corsheaders',... 
]

增加中间件

CorsMiddleware应放在尽可能高的,特地是能够产生如 Django 的回应任何中间件之前 CommonMiddleware 或白噪声的WhiteNoiseMiddleware

MIDDLEWARE  =  [ 
    ... 
    'corsheaders.middleware.CorsMiddleware',# 上面这句是默认的第一句
    'django.middleware.common.CommonMiddleware',... 
]

为视图增加注解

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def user_login(request):
  ...

额定的设置

# settings.py

# 跨域 django-cors-headers 配置
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True

# 受权进行跨站点 HTTP 申请的起源列表
CORS_ALLOW_ORIGINS = ['*']
# 理论申请所容许的 HTTP 动词列表。默认为
CORS_ALLOW_METHODS  =  [ 
    'DELETE','GET','OPTIONS','PATCH','POST','PUT',]

# 收回理论申请时能够应用的非标准 HTTP 标头的列表。默认为:CORS_ALLOW_HEADERS  =  [ 
    'accept','accept-encoding','authorization','content-type','dnt','origin','user-agent','x-csrftoken','x-requested-with',]

更多配置信息

正文完
 0