第一步:安装 django-cors-headers
pip install django-cors-headers
第二步:在seetings.py添加配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',#解决跨域
'app'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware', #解决跨域
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ALLOW_CREDENTIALS = True #解决跨域
CORS_ORIGIN_ALLOW_ALL = True #解决跨域
# 允许任何表头
CORS_ALLOW_HEADERS = ("*") # 解决跨域
# 允许的标头
# CORS_ALLOW_HEADERS = (
# 'accept',
# 'accept-encoding',
# 'authorization',
# 'content-type',
# 'dnt',
# 'origin',
# 'user-agent',
# 'x-csrftoken',
# 'x-requested-with',
# )
# 设置白名单
CORS_ORIGIN_WHITELIST = ()
# 对应的发送的请求的跨域
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)
注意:备注了解决跨域
字眼是要添加的。
如果你的项目没有考虑到 csrf
网络攻击,可注释掉'django.middleware.csrf.CsrfViewMiddleware,
,否则会报错没有传递csrf cookie。