[ django跨域网络配置 ]


目录:

解决跨域问题(第三方)

  • 安装模块
    • pip install django-cors-headers
  • 在settings.py的apps里注册
    • INSTALLED_APPS = ( 'corsheaders'
    • )
  • 在settings.py里添加中间件
    • MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', #添加这个 'django.middleware.common.CommonMiddleware', # 这个是原本就存在的 ]
  • 设置settings.py的ALLOWED_HOSTS
    • ALLOWED_HOSTS = ['*' ]
  • 到settings.py最后添加如下代码
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
# CORS_ORIGIN_WHITELIST = (
#     'http://127.0.0.1:8080',
# )
CORS_ALLOWED_ORIGINS_REGEXES=[
    r'^http://.*?$',
]
# CORS_ORIGIN_REGEXES_WHITELIST = (
#         r'^http://.*?$',
# )
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)

CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'Pragma',
)

项目演示

# 域名白名单
ALLOWED_HOSTS = [
    '127.0.0.1',
    'im2.esoaru.com',
    'im-nightly',
    "im2",
    "im"
]

# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)

CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'Pragma',
)

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE = 'None'