django 跨域

1、安装依赖库django-cors-headers

pip install django-cors-headers

2、setting设置(支持所有的IP进行跨域)
修改Django项目文件夹下的 setting.py 文件

# django_project/setting.py

# 修改允许访问的IP
ALLOWED_HOSTS = ['*'] # 允许全部IP访问项目


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders', # 注册跨域app corsheaders
    'app01',# 你的app
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware', # 加入中间键 位置必须在这里 不能在其他位置
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware', 如果你的项目没有考虑到 csrf 网络攻击,可注释掉,否则会报错没有传递 csrf cookie
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]


# 在 setting.py 末尾添加以下设置
CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie
CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_HEADERS = ('*')

3、设置跨域白名单(若不想支持全IP的话,可设置ip白名单来支持某些ip的跨域请求)

# CORS跨域请求白名单设置
CORS_ORIGIN_WHITELIST = (
    'http://127.0.0.1:8080',
    'http://localhost:8080',
    'http://192.168.3.10:8080'  # 前端的ip
    'http://www.mysite.site:8080',
)
CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie

posted @ 2024-08-09 15:31  二月雪  阅读(34)  评论(0编辑  收藏  举报