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