为了在 Django 服务器中配置跨域资源共享(CORS),你可以使用 django-cors-headers
库。这个库可以帮你轻松地设置 CORS 规则,从而允许你的 Django 服务器处理来自不同源的请求。
以下是配置 CORS 的步骤:
django-cors-headers
首先,你需要安装 django-cors-headers
库。如果尚未安装,可以使用以下命令进行安装:
pip install django-cors-headers
django-cors-headers
安装完成后,你需要在 Django 项目的设置中进行配置。
在 settings.py
文件中,将 corsheaders
添加到 INSTALLED_APPS
:
INSTALLED_APPS = [
...
'corsheaders',
...
]
将 corsheaders.middleware.CorsMiddleware
添加到中间件列表中,确保它位于 CommonMiddleware
之前:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
在 settings.py
中添加 CORS 配置。例如,允许所有域名访问:
CORS_ALLOW_ALL_ORIGINS = True
'运行
如果你只想允许特定的域名,可以这样配置:
CORS_ALLOWED_ORIGINS = [ "http://example.com", "http://anotherdomain.com", ]
'运行
django-cors-headers
提供了多种配置选项来实现细粒度控制。以下是一些常用配置:
CORS_ALLOW_METHODS = [ "DELETE", "GET", "OPTIONS", "PATCH", "POST", "PUT", ]
'运行
CORS_ALLOW_HEADERS = [ "accept", "authorization", "content-type", "origin", "x-csrftoken", "x-requested-with", ]
'运行
CORS_ALLOW_ALL_METHODS = True
'运行
CORS_ALLOW_ALL_HEADERS = True
'运行
以下是一个完整的 settings.py
示例,展示了如何配置 django-cors-headers
:
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ALLOW_ALL_ORIGINS = True # 允许所有域名访问
# 或者,只允许特定域名访问
CORS_ALLOWED_ORIGINS = [
"http://example.com",
"http://anotherdomain.com",
]
# 允许所有来源的特定 HTTP 方法
CORS_ALLOW_METHODS = [
"DELETE",
"GET",
"OPTIONS",
"PATCH",
"POST",
"PUT",
]
# 允许特定的请求头
CORS_ALLOW_HEADERS = [
"accept",
"authorization",
"content-type",
"origin",
"x-csrftoken",
"x-requested-with",
]
通过配置 django-cors-headers
,你可以轻松地控制哪些域名和请求可以访问你的 Django 服务器。这对于开发和生产环境中的跨域请求处理非常有用。