解决django跨域问题
在Django中解决跨域问题,可以通过安装和配置django-cors-headers
第三方应用来实现。
- 安装
django-cors-headers
:
pip install django-cors-headers
- 将
corsheaders
添加到你的Django项目的INSTALLED_APPS
设置中,放在最前面:
INSTALLED_APPS = [
'corsheaders',
# ...其他应用...
]
- 在中间件
MIDDLEWARE
设置中添加corsheaders.middleware.CorsMiddleware
,确保它放在任何认证和权限中间件之前:
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# ...其他中间件...
]
- 在
settings.py
中配置跨域设置,允许所有源(注意:仅在开发环境使用,生产环境应设置特定的允许源):
CORS_ORIGIN_ALLOW_ALL = True
或者,为了更精细的控制,可以设置CORS_ORIGIN_WHITELIST
:
CORS_ORIGIN_WHITELIST = (
'http://example.com',
'https://sub.example.com',
'http://localhost:8000',
'http://127.0.0.1:9000'
)
确保还设置了CORS_ALLOW_CREDENTIALS
:
CORS_ALLOW_CREDENTIALS = True
完成以上步骤后,跨域问题应该得到解决。如果你需要进一步的配置选项,请查看django-cors-headers
的官方文档。
评论已关闭