跨域的解决方法很多,这里我们直接用django提供的方法来实现,django提供了一个专门处理跨域问题的插件:django-cors-headers ,我们只要安装该插件并在项目中配置即可解决跨域问题:
安装插件:
pip install django-cors-headers
项目配置:
1.我们先要将该插件引入项目中,在settings.py中找到INSTALLED_APPS列表,添加‘corsheaders’。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'App.catalog_classification',
'corsheaders' # 解决跨域请求配置
]
2.新增中间件(把对应的组件添加到settings.py中的MIDDLEWARE列表中),注意'corsheaders.middleware.CorsMiddleware'中间件注册时必须放在django.middleware.common.CommonMiddleware中间件的前面。
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',
]
3.注册完组件之后我们就可以来配置跨域设置了, 直接在settings.py后面新增配置信息。
# 解决跨域请求配置
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_METHODS=(
'DELETE',
'GET',
'POST',
'PUT',
)
CORS_ALLOW_HEADERS=(
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requestd-with',
)
到这就完成了django跨域请求的配置了,尽情开发吧!
参考文档:https://pypi.org/project/django-cors-headers/