首先,安装 django-cors-headers:
pip install django-cors-headers
然后在 settings.py 中修改:
INSTALLED_APPS = [
# 其他应用
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# 其他中间件
]
CORS_ORIGIN_ALLOW_ALL = True # 仅用于测试,生产环境请谨慎使用
# 或者使用更精确的配置
# CORS_ORIGIN_WHITELIST = ["http://localhost:8080", "http://127.0.0.1:8080"]
- django-cors-headers 库可以帮助你在 Django 应用中轻松管理 CORS 策略。
- 将 corsheaders.middleware.CorsMiddleware 放在 MIDDLEWARE 列表的适当位置,确保它在处理请求的早期阶段进行 CORS 检查。
- CORS_ORIGIN_ALLOW_ALL = True 允许来自任何源的请求,这在开发和测试阶段可能很方便,但在生产环境中可能会暴露安全风险,因为它允许任何网站向你的后端发送请求。
- CORS_ORIGIN_WHITELIST 可以精确地指定允许哪些源的请求,将 Vue 前端的地址添加到这个列表中,这样只有这些源的请求才会被允许,提高安全性。
请按照上述步骤修改 Django 后端的配置,解决 CORS 问题。如果在修改后仍然存在问题,检查是否有其他中间件或视图函数导致请求重定向,并确保预检请求的响应符合 CORS 策略。