想要了解更多干货,欢迎大家关注我的微信公众号:iProgram爱编程
解决Django跨域问题及DJango无法获取新版本Chrome80的cookie问题:
第一步:使用pip安装django-cors-headers
pip install django-cors-headers
第二步: 添加到setting的app中
INSTALLED_APPS = (
...
'corsheaders',
...
)
第三步: 添加中间件(注意添加的顺序)
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
第四步: setting中添加配置:
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'X-CSRFToken'
)
下面开始解决谷歌新版本chrome80 默认SameSite导致跨域问题:
第五步:setting中添加配置
SESSION_COOKIE_SAMESITE = None # response header set-cookie:samesite=lax Default: 'Lax'
CSRF_COOKIE_SAMESITE = None